• Cutting Costs / Adding Value

    Cutting Costs / Adding Value

    What is price? It can be a measure to “weight value”.
    For example, there was this person on Twitter that stated stated how $30 per PR shipped is a good price, and I tend to agree.

    The thing we have with AI now is that you can spin up a model ask it to build something.

    Guess what? The model will agree and will start using tokens (spending tokens). There is no pushback. There is no questioning of any assumptions.

    You can build AI skills that manage some level of pushback, but overall, whenever you ask a model to do something, it will do it, sometimes it’ll relentlessy do it.

    This brings everything to another level and raises another question that remains valuable today, a question that was there from the beginning: What’s the value of what I want?

    There will be a time when people will start saying we need to bring the costs down, at that time we will go back to square one because, as I said before, it was never about building. It was always about building the right things.

    This opportunity to directly see the price of an implementation, or at least have a rough idea, gives you an overall understanding that money is a finite source. You want to spend it wisely on things that matter and things that will make a difference.

    But we can’t ignore the fact that we are now in the full bloom of AI. It’s normal to abuse tokens now. People are exploring a new world.

    But, at the same time, I expect that there will be a time when some people will either switch to local models for things where they are unsure of the value, or they will start questioning the product roadmap.

    For example, is it ok spending $1,000 or $2,000 for an idea that might not bring value? These costs will sum up over time and will add up maintenance costs that will make running products even more difficult.

    What we ultimately want is a sustainable product that is easy to maintain and brings true value for customers, that’s the dream right?

    It was never about the price. It was never about what to build or the time to build. It was always about building the right things that solve people’s problems and keep them engaged with your product.

    But this is actually a cool thing about AI because you can now have a rough understanding of how much investment is needed to do anything.

    Before, the situation was slightly more blurry, estimates were difficult, we didn’t have “human tokens”. Now, you are starting to see the cost clearly also (strangely) thanks to measurable token costs which, even though you can’t predict the exact amount of work (and therefore the spending) can help a lot in this kind of planning.

    It will be somewhat easier for entrepreneurs, stakeholders, or product people to think about whether they are spending money in the right direction.

    And, eventually, they will be accountable for how much they spend.

    This is not new: If you want to adopt a new product that costs a significant amount, you obviously need to figure out how make a case for its usage in your company. This will be no different.

    Knowing that what you build is valuable or will make a ROI seems obvious, but now you have kind of a metric to help understanding it.
    Tokens.


  • When Phishing Comes With Your Booking Details and What To Do About It

    When Phishing Comes With Your Booking Details and What To Do About It

    Last Saturday, I received a WhatsApp message.
    The interesting thing was that it contained very precise information about a booking I had with a hotel that I was going to in a few weeks.

    My first reaction was, hey, I need to confirm the reservation. I want to make sure that my reservation is being kept.

    At the same time, I realized that there were a couple of things that were off.
    I quickly realized that this was a very well-crafted phishing message, probably caused by some data leak, either from Booking.com or from the hotel itself.

    I was lucky and experienced enough to not fall for this, but I think it is valuable to share how real this thing can become and what to do when you receive something similar.

    The Message

    Before anything, I’m going through the content of the message. Then I’ll list the actions.

    Looking at the beginning, the first red flag for me was the number, but I didn’t look at it right away.
    Even though I’m in Italy, I tend to frequently have English messages from people and booking agents that write me in English.

    When you read it, you see that in the beginning there’s this number coming from the UK, and there’s this image with “guest support team” written on it, as if it’s coming from a real hotel.

    Then it had something like a message that you would get from the hotel saying, “Hey, [my name]. This message is related to the booking at Hotel X,” which was correct, “from that date to this other date,” and including also the Booking.com correct reference number

    That caught my interest because it was very real.

    The Red Flags

    Then there was this slight twist where they said, “Your booking is currently in a pending state and requires confirmation to remain active,” which was unusual for a normal booking.

    Then I had this deadline: 11 hours and 30 minutes, which is the main thing that every phishing message usually has: some level of urgency.

    You’re getting a message from a trusted source because it has knowledge about you that, theoretically, only the original source should have. Then it puts some urgency: “You have 11 hours to confirm.”

    Then it continued “please review your reservation details in an external website.”
    This was an additional red flag for me.

    The other thing that was strange was that it was a strange website. But that could happen because sometimes hotel booking systems might be on very strange websites, but that could have been possible.

    “Once completed, the reservation will be automatically updated,” the message says.
    If no action is taken, this is the urgency again, the reservation may be released.

    At the end they add the hotel name again plus it is a WhatsApp business account with fake buttons that said “Cancel my reservation.”

    What I Did

    Once I realized that this was fake, I checked the domain whois, I checked the hotel, and I brought everything to the hotel’s attention.

    Instead of acting on whatever I got from this message or replying to the number, I went to the hotel website and to my booking and asked for clarification.

    They confirmed that this was not from them, so someone was impersonating the hotel.

    The real problem was that the attacker had real information about the booking reference, probably because of some data leak either at Booking.com or at the hotel level.

    How To Protect Yourself

    These kinds of attacks are going to become even more sophisticated.

    How do you protect yourself from these attacks?

    First and foremost, don’t trust anything that has some level of urgency in it. Whenever they ask you for an action, confirm it and use the official communication channel.

    Instead of answering a call, call it yourself.
    Instead of replying to a message, send a message yourself to the hotel.

    Don’t trust the calls because the caller ID can be faked in some places. Don’t trust even if they call from the right number. You need to call them yourself.

    You check with them, and if that is confirmed, then you do it when you call them, not the other way around.

    Never trust any message you receive whenever there’s some level of urgency.

    Don’t click links. Clicking links, as I recently discovered, might expose information about you, including that the number was correct. They might also get information about your browser, your IPs, your location, depending on which browser you use.

    You want to avoid interacting with any of these, and the best approach is always to report it.

    Hope it helps.


  • Opinionated vs Not Opinionated

    Opinionated vs Not Opinionated

    You’re maintaining a project that is going to be used by other people, think about a library or a set of components. One of the key elements is to choose whether you want that project to be opinionated or not opinionated.

    Opinionated means that you have a vision, you care about that vision, and you adapt to the goal, so that you get closer to what that vision is. That vision could be a set of values, of ideas, or of constraints that you will place onto anyone using that library.

    On the other hand, if you want it to be non-opinionated, then it means that you’re targeting a wider audience, you’re trying to reach a bigger audience and your project needs to be able to support different activities, different interfaces, or whatever that is.

    The point, though, is that when the project grows, being opinionated could become harder and harder. There are trade-offs between the two ways of working.

    Taking decisions

    When you’re doing non-opinionated, sometimes taking a decision can be hard, because who am I serving?

    It’s kind of building a product, after all: you’re serving a customer type.

    Whereas when you’re opinionated, you’re serving yourself first, or your needs first, and it’s easy to take a stance and say: yes, this goes in, this doesn’t go in. You’re, after all, clear on what should be done and why.

    Keeping the stance

    Now there’s another thing that’s important: when it is opinionated, keeping that stance might be harder than it seems once the project grows.

    The “opinion” belongs to the person who had the vision, and as humans we tend to (or at least that’s the way I see it) create new rules, and think that those new rules are the new opinion.
    But those are just rules, not values, not ideals. They might come out of values as a way to make those values tangible, but that is not a guarantee.

    Being opinionated means, to me, that you want to continue passing down that initial opinion with full intensity, instead of diluting it. You want that concept, use case, ideal or simplicity to be passed down with no exception, so that your product is expressing the need or your idea.

    I think building that type of product is easier when you’re the main user, and it’s harder when you’re looking at it externally, because the more you’re the target customer/user, the easier it is to keep that opinion true to its roots down the line, as opposed to following rules that are synthetic to some level.

    Instead, when you’re building something that is not opinionated and aims to reach a wider audience, you’re facing all the challenges of how should we build this and how should this be implemented.

    That’s something you could compare to products that are wide-ranging, aiming to reach a bigger population, as big as possible, that are generic and broad, and nailing down the user type and the user need becomes the job.

    You’re searching for opinions, opinions that you can serve and include into the use case to advance the product itself.


  • It’s Never the Right Time, Yet It Always Is

    It’s Never the Right Time, Yet It Always Is

    How many times have you thought, “I’d really love to take this trip right now, but I have work, I can’t afford it.”

    Or, “I’d like to have a child, but my life is too messy right now, I wouldn’t know how to handle it.”

    When is the right time?

    When does that mysterious alignment of planets, events, things, and people happen, where everything is in its place and the only choice you have to make is handed to you by what we might call fate, ready to be seized?

    Does such a moment exist?

    A moment where we have the clarity to see that everything is perfect, that it is THE moment, and that only then should we make the choice we need to make: the trip, the children, changing jobs, changing lives, moving away, traveling, getting lost, starting over from scratch.

    I waited for many things in my life. I too waited for there to be a green light in front of the choices I wanted to make, but sometimes that green light never came.

    Just like with having children, I decided to have them even though I didn’t feel ready, even though life wasn’t as it was supposed to be, even though there was something that could have been done better.

    Looking back, I think: I did the right thing.

    The point is that there are two problems behind waiting.
    The first is that it’s not possible for there to be a green light.

    Life doesn’t make room for you; you make room for it.

    The world doesn’t adapt, it doesn’t know what you want. The world around you evolves in ways you cannot predict or imagine.
    So that astral conjunction you desire so much? Forget about it. It will never come.
    It will always be an imperfect choice, with an imperfect outcome, and yet still beautiful.

    The second point is that maybe there are cases where the world does prepare itself for you.

    Where the clearing’s leaves part to let you through
    In those moments, in the frenzy of today’s world, would we even be capable of seeing such a miracle?

    Or would our eyes quickly pass over those displaced leaves, ignoring them? Labeling them as something ordinary, when instead they were part of an immense design that we were incapable of seeing.

    So when is the right time?
    In the end, I think that if you’re asking yourself the question, maybe that is already the right time.

    Because ten years ago you wouldn’t even have asked yourself.
    It wasn’t on your radar.
    But now it is.

    Maybe you won’t be ready, maybe something will be missing, maybe you’ll make a mistake, but the point is that now you have a doubt you didn’t have before.
    And that doubt is the first spark, the first desire that writes in your heart what you want to do.

    You can ignore it and think that you need a whole world around you to justify it, but in reality that small glimmer, that doubt, so frightening and unfailingly beautiful, is enough to justify it.


  • Two Bets on the Future of Software Engineering

    Two Bets on the Future of Software Engineering

    I feel that in the future all code will be written by agents.

    That might not be the time now for every company, but I think that’s where we’re heading. The interesting part is not whether that happens or not. The interesting part is how we get there.

    I think there are multiple ways to reach a point where we can successfully ship production-quality code written by agents. Not in terms of quantity, but in terms of quality. Quality that is comparable to what humans produce today.

    And to understand why that’s difficult, we first need to talk about context.

    Context Is More Than Code

    We all know that context is partly the limit, and even more so the context that is not part of the code.

    Whenever we create a project, we create it with an intention. We define it with taste and goals. Those things are often not written in the code.

    Sometimes they’re documented elsewhere. Sometimes they’re not documented at all.

    The code is only one part of the project. The intentions behind it, the trade-offs, the expectations, and the taste of the people building it are often stored somewhere else, or nowhere at all.

    That’s one of the biggest challenges if we imagine a future where agents write all the code.

    Getting There

    If the world eventually reaches a point where all code is written by agents, there will be multiple stages to get there.

    Right now, what we’re seeing is that some people and companies are using agents directly, while other companies are all-in on using AI to augment a single developer.

    Those are two different ways of approaching the problem.

    I think the first group is going to have more trouble in the beginning because, again, the agent doesn’t know everything. It doesn’t know the taste, the goals, or the requirements that exist outside the immediate scope of the task.

    That gets messy quickly.

    All-In on Agents

    This is similar to what OpenAI described in their Harness Engineering document around projects that are largely AI-generated where the agent does all the work, 100% code is written by it and it’s async. It doesn’t need a human to start working.

    That poses some interesting questions.
    You want to review the code. You want to make sure it’s clean, that it doesn’t introduce duplications, and so on.

    At the same time, you want some kind of ownership of that code by the AI itself.
    So you need to build processes that revolve around making sure the code continues to evolve asynchronously with minimal human interaction.

    Humans are still involved, but they’re not guiding every step. They’re reviewing, controlling behavior, and making adjustments.

    The goal becomes enabling the system to continue operating without needing a human to constantly push it forward.

    AI as Augmentation

    The other group is probably moving slower, but (probably) at higher quality.

    They’re controlling the agents more. They’re augmenting their workload rather than delegating ownership completely.

    But at the same time, whenever we reach a point where we can safely trust agents to do their work, or at least part of it, they won’t have learned how to guide agents in that way.

    Current harness engineering and context engineering revolve around addressing the limitations of today’s agents, but whenever a new model comes out, you’re suddenly facing a different set of problems.

    Some of the techniques you’re using become useless, for example models already require much less prompt engineering than they did before.

    Trade-offs

    I believe some companies are spending time on things that won’t matter anymore in a few years or maybe months.

    One group is optimizing for quality and control.

    The other group is optimizing for amplification and learning how to operate with autonomous systems. It’s a trade off one has to make.

    The Winner

    In the long term, I think the first group, the one adopting AI-written code more aggressively, is going to be faster, assuming they can sustain the errors long enough (or have a quick feedback loop for humans and AI agents) for the models to improve.

    It’s a bet, of course. I’m betting too as I can’t predict the future.

    My take is that models will reach a point where they can remove most of the issues they created. But to get there, you need to enable each model and agent to self-serve and self-direct.

    Even something as simple as checking that reporting is consistent could become a task handled by an agent.
    Or maybe it’s something that won’t matter anymore because the interface itself changes.

    Maybe software stops being primarily UI-based and becomes something else, who knows.

    Everyone Is Betting

    I think everyone is betting on something right now.

    The companies going all-in on agents are making one bet.

    The companies focusing on augmentation are making another.

    I think that learning how to give agents work and let them operate autonomously will be important for companies right now, the more that is possible, the better positioned your company will be if that future arrives.

    What will you be betting on?


  • Nobody knows the AI Future

    Nobody knows the AI Future

    Recently the CEO of ClickUp announced a layoff of twenty-two percent, and that was also bundled with a lot of ideas for the future, about restructuring, and about what it means for now.

    Here are my takeaways.

    1 – AI is shifting everything

      Nobody knows what the future will look like. Don’t trust who says otherwise, because we’re still in a moment in time where little do we know how AI will shape the world and how we will adapt to it.

      We’re currently doing our best, as usual, but the world five years from now will probably be quite different from what we have today.

      2 – Tokens are a limiting factor

        Tokens are a limiting factor, and inefficient tokens are a hurdle and a cost.

        This is not fully shared by the CEO. He mostly talked about letting people use unlimited tokens, and I agree with the direction. Token usage can absolutely be a limiting factor.

        Right now you want to leverage as much power as possible that AI can give you, because you can expect some of the services will bump the prices up, and we’re already seeing this.

        3 – Critical thinking matters even more now

          This is my take, but you want to build even more critical thinking as you hand off more work to AI.

          If you didn’t have enough critical thinking before, now is the time.

          If you had it before, be aware that you’re trusting AI more than you would trust a human. You need to address that.

          4 – Bottlenecks will define the future

            Everything that slows AI adoption or AI distribution is currently a bottleneck.

            It’s not about “AI can code.”
            The question is: assume that everything is done by AI, what can’t AI do currently?

            Those are the bottlenecks you need to figure out.

            Again, this is mostly a vision for the future, so it might be wrong.

            5 – Deprecating old systems

              If you want to shift the mindset entirely, adapting might take longer. You want to reinvent because adapting them might require so many different changes and what you want is speed.


            1. Hyperion / Cities of the Plain (Books)

              Hyperion / Cities of the Plain (Books)

              I wanted to share my take on two books I recently finished. Enjoy it!

              Hyperion

              I think I’m one of the few people that didn’t like the Hyperion books at all, and I promise you, I had high expectations.

              I can recognize that they are very well crafted, with a huge amount of information and worldbuilding inside them, they just weren’t interesting to me.

              I’m talking specifically about Hyperion and The Fall of Hyperion.

              The main issues I had were:

              • the use of random words and unexplained concepts,
              • the constant recalling of Old Earth culture,
              • and the fact that people accept almost paranormal things as if they were completely normal.

              Together, these things made the books really hard for me to accept as a whole, and because of that I never found them particularly engaging.

              There’s also the fact that the narrator is omniscient, so you constantly get hints that things will happen before they actually do. Considering the structure of the books, I didn’t love that either.

              Random words

              The first issue is that there are lots of random words scattered everywhere. The worldbuilding feels futuristic, but in a way that often felt more akin to medieval fantasy than science fiction to me.

              “Things exist because they exist.” The books assume acceptance instead of building understanding.

              And all the books are permeated by this feeling. It constantly pulled me out of the experience because instead of thinking “this could exist in the future,” I often felt “this is just fantasy with futuristic decoration.”

              Earth Nostalgia

              The second issue was the constant references to Old Earth.

              You’re living hundreds of years after Earth has been destroyed, humanity has spread across worlds, civilizations evolved, and yet people are still deeply attached to Earth culture in a way that felt strange to me.

              Foods, songs, poets, literature, historical references, everything keeps coming back to Earth.

              It also felt odd that everyone seemed to know these references in detail, as if deep historical knowledge was universally shared (I know little about some parts of recent history, let alone some more old stuff).

              It would be like everyone alive today casually understanding medieval history, poetry, and culture at a deep level.

              So even though the books describe this incredible futuristic civilization, culturally it often felt strangely frozen in the past.

              A constructed pilgrimage

              The whole idea of these seven people going on a pilgrimage together felt strange from the beginning.

              Even though the story eventually explains why it’s happening, it still felt like an constructed idea created to tell stories rather than something that emerged naturally from the world itself.

              It’s supernatural and that’s ok

              The last part is that there are many things in these books that feel almost paranormal, and people simply accept them as normal.

              People speaking through dreams. Mysterious forces that are barely explained.

              And that’s fine in itself, lots of books do that, but here it kept happening over and over without enough grounding for me.

              Characters rarely stop to question things in a way that felt believable. They just move one step in front of the other and continue.

              Paul Duré

              The only story I truly appreciated was the one about Paul Duré.

              That one was genuinely fascinating to me. It had mystery, horror, philosophical depth, and emotional weight in a way that the rest of the book never fully reached for me.

              But beyond that, I struggled to connect with the characters or their motivations. Often it felt like people were just moving through the plot because the story needed them to.


              Cities of the Plain

              On the other hand, Cities of the Plain by Cormac McCarthy was absolutely beautiful.

              I think I still liked the first two books in The Border Trilogy a little bit morel All the Pretty Horses and The Crossing, because they have that expansiveness of people riding horses for days across immense landscapes.

              You really perceive the scale and loneliness of the journey.

              That feeling is a little more reduced in Cities of the Plain because there’s much more human interaction compared to the first two books.

              But it’s also beautiful in a different way because you finally get to see the two main characters from the previous novels connect together.

              And it’s still heartbreaking. Completely heartbreaking on many levels.

              The final dream

              The thing I liked the most was probably the ending.

              There’s a dream sequence near the end that genuinely feels like a real dream. Not a literary dream, but the kind of mysterious, fragmented, impossible-to-understand dream you occasionally have in real life.

              It has all the strange symbolism, hidden meanings, and emotional logic that dreams carry.

              You feel like there’s meaning inside it, but you can’t completely grasp it and it was incredibly fascinating to read.

              If you haven’t read them, I highly recommend the first two books of The Border Trilogy.

              I think they are fantastic modern westerns and genuinely beautiful to read.

              The pacing and writing style are unlike almost anything else, so you need to accept the rhythm McCarthy writes with. But once you’re deep into it, the experience becomes incredibly powerful.


            2. Accessible Products Benefit Everyone

              Accessible Products Benefit Everyone

              Maybe you never worried too much about building an accessible product. And maybe you thought: “It doesn’t apply to me”.

              Think twice because one thing I learned is that there are three different types of disabilities and everyone, literally everyone, can be or is impacted. And that’s the key because the product that is usable in most scenarios is a competitive advantage.

              Types of disabilities

              Here’s how Microsoft describes the disabilities type in their Inclusive Design Toolkit.

              Here’s the image that started it all for me. This is from the Microsoft Design Toolkit and it defines the three types of disabilities that you can find. Some of them are permanent, these are the ones my mind would go to when thinking about disabilities.

              But then you have the temporary and the situational. So you can quickly realize that if you’re watching a video but didn’t have headphones, and maybe you’re on the tube and it’s not in a noisy environment or didn’t want to wake up somebody, or you’re reading the screen and there’s direct sunlight and the contrast is not there, then it’s hard for you to enjoy a video or read the content of a website. And all those things can be addressed by your product. That is something that you can work on, that you can improve, and it doesn’t take years to get there.

              My situational disability

              The reason I am writing this is because of museum in Italy. There, I started noticing small things that could’ve made the life of people easier.

              For example, the first floor elevators were located at the beginning of the exhibition, while the stairs connected the first and second floors at the end of the first floor exhibition. This meant that if you needed the elevator and completed the first floor exhibition, you would have to backtrack to reach the second floor. Not ideal.

              But the most noticeable issue was on the third floor.

              There, we entered a room with a large ship in the center. On the left side, the path was blocked, and on the right side, stairs led up to the ship. There was no space to walk around the stairs to access the slope, so we would have had to go back through the exhibition to reach it from a different entrance.

              Here’s how the room looked. We entered from the side that had only the stairs.
              Photo of the slope

              If the slope was on both sides, or if there was a shorter way to get to the other side, it would’ve been easier for me to access the ship, but this was not the case.
              I had a stroller and there I was, looking at the stairs and thinking: “I’m lucky that I can lift this stroller, but still, could this be approached differently?”

              Don’t save on accessibility

              Accessibility for web products is even easier than physical products.

              There are so many tools and products that you can use today to improve the accessibility of your website or web tool. many there are m so many free courses that you can take just search online. They’re super easy. More of them than not, they’re very comprehensive. And w

              What you’ll build will be better for every user’s, not just the one with permanent disabilities, but for every user. Think about that when you build something.

              Links


            3. Challenge Complexity

              Challenge Complexity

              Here at Automattic, we’ve been running an internal experiment called Radical Speed Month, a one-month initiative where two-person teams are given broad autonomy to build and ship projects quickly with minimal process overhead.

              In some ways, it reminded me of when someone takes a long vacation. Whenever that happens, everything resets. You need to rebalance responsibilities, workflows, and dependencies that naturally formed around that person for however long they were away.

              This felt similar.

              It also sparked a lot of different ideas and fantastic projects. Some people were truly energized by this work. And honestly, so was I. I was surprised by the amount of enthusiasm and passion this triggered.

              It served as a reminder that this kind of energy is what drives engagement, curiosity, and creativity, and we should strive to keep it alive and nurture it.

              It was also a reminder that we should periodically challenge our assumptions and re-evaluate the systems we’ve built around ourselves.

              As a developer, I’ve always thought that every piece of code added to an application has a butterfly effect. Someone will need to maintain that code for as long as it exists.
              In fact, one thing I always say is that the best code is the code you don’t need to write.

              Sometimes we add code for things we don’t actually need, and that becomes maintenance and operational overhead we carry for years.

              Adding code is easy. Removing code is much harder.
              Removing features can be even harder because users naturally build workflows and habits around them, then over time, we all tend to accumulate complexity.

              For a long time, I thought code was the main surface where complexity gets introduced. But I’m constantly reminded me that complexity exists everywhere.

              Every company has countless touch points where things can become heavier, slower, and more layered than they need to be. And many of those things can become better and leaner.

              That’s why this question is so powerful: If you were starting today, what would you do differently?
              Which of the structures you created are complicit in your results?

              If you temporarily ignored existing boundaries and assumptions, the org charts and the structure, what would you build? Where would you go?

              I don’t know what the future will hold. But I think we’ll need as many good ideas, perspectives, and thoughtful opinions as possible to navigate what comes next.

              Some additional food for thought, related to this


            4. We’re all (eventually) going to die

              We’re all (eventually) going to die

              I’ve heard a lot of stories in my life of people getting cancer. Some close to me, some more far away from me. And it feels as if it’s spreading.

              It’s scary to know that such a dark illness is somewhat common in the circle of the people I know. More common than I would ever have expected.

              It’s surprisingly sad. Because it’s a reminder that our time is limited on this planet and that really we’re all eventually going to die.

              Why is this happening?
              What did we do wrong?
              What are we doing wrong that allows cancer to spread?
              What are we ignoring?

              The reason I started thinking about this is because of one podcast episode from Lenny where they were saying that the concept of “when you lose, you learn something” is actually and we would be better of with “when you succeed, you learn something.”

              The reason behind this is that, when you lose, something was not okay, but you don’t really know what was that, whereas it’s easier when you are successful at something to pinpoint what worked and what didn’t. Therefore you have more information.
              The problem with learning through failure is that we don’t know where we’re failing, which leaves us clueless.

              That’s the way I feel when cancer hits close to home. Clueless. What do we have? What can we do? Where do we go?

              What’s even more heartbreaking is the realization that we’re here for a short amount of time and that whatever you did in life may matter or not. Obvious to some, but yet not something we are reminded daily.

              This crystalizes instantly to people when they realize the shortness of their life.
              Even more so when you’re younger, but equally true when you’re older, you think you’re going to live forever. Even if you don’t think about death, you think about it as if that is not an option, or it’s very distant in the future.
              But, actually, you (we) don’t know.

              That’s the beauty of life. We’re here for some moments to share some stories and pieces of the journey we’re in with other people. And it’s up to us to make sense of it, to have fun and to make it meaningful, to treat each moment as unique and precious.

              So wherever you are, whatever you do, remember you can always start over.
              You can try again.
              You can always try something new.
              You can let it go.
              You’re allowed to cry.
              And, more importantly, remember that love will still be around, no matter what.