普通视图

发现新文章,点击刷新页面。
昨天以前首页

Introducing Death Clock (And My First Experience with Vibecoding)

2025年5月5日 10:00

I’m proud to introduce Death Clock, a life expectancy calculator that predicts the day of your death based on 17 personalized variables.

Give it a try for free!

This is not only the first “app” I’ve ever created myself, but also my first experience with AI-assisted coding, which has become known as “vibecoding.” 

I can definitively say this was one of the most eye-opening, impressive encounters with technology I’ve ever had, and it opened my eyes to a vast horizon of possibilities that I think AI-assisted coding will open up going forward.

Here are my observations and insights based on my first few hours of vibecoding.

Finding an entry point

One of the first things I look for when trying to learn a new skill is a good “entry point.”

Simply typing the topic into Google or YouTube is not smart, as it only results in a flood of mediocre-quality, clickbait-driven results. Instead, I look for a single, in-depth piece of content or a course taught by a qualified instructor with a strong track record of quality. Ideally, there’s also an accompanying community or discussion forum associated with it, so I can see what others are doing.

All these criteria were fulfilled when I signed up for my friend Nat Eliason’s new course, Build Your Own Apps with AI. One recent Saturday morning I started watching the instructional videos while my wife and the kids were sleeping in.

The course recommends the coding program Cursor. As I downloaded the desktop app and created an account, the complex-looking interface was already starting to intimidate me. I had downloaded IDEs (Integrated Development Environments) before, but since I have virtually no technical ability or knowledge, I always felt overwhelmed and confused by the unfamiliar interface and quickly gave up.

Here’s what the interface looks like in Cursor:

Cursor Interface

As I watched Nat’s videos, it soon dawned on me how incredibly straightforward and easy it was to create functional code using Cursor, for one simple reason: it draws on the formidable powers of leading LLMs.

As I began experimenting, I found that it wasn’t necessary to interact with any part of the software except for one: the ongoing chat with the AI. Although you can directly manipulate the code, navigate around the various project files, approve or reject individual edits, and issue commands in a terminal window if you want, none of that is strictly necessary. The AI can take all the actions itself.

Building Death Clock v1

After watching the first module of the course, I decided to go right ahead and try building something I actually wanted: a life expectancy calculator. 

I’m in the midst of writing my new book, on the art and practice of completing an annual life review, and I’m finding that one of the main themes of the book is reckoning with one’s mortality and limited time on the planet. It’s quite hard to take on that longer-term perspective day to day. But at least once a year, I think it’s incredibly valuable to do so. I was looking for a way to give readers a visceral, felt sense of how short life truly is.

I can write thousands of words about mortality and its ability to put our lives into proper perspective, but no volume of words compares to the power of a personalized, interactive tool that calculates your own expected date of death. It’s the difference between generic advice and an expiration date that takes into account your own unique life circumstances.

Living in Mexico has also exposed me to a very different attitude toward death than I’m used to in the US. Instead of something to be feared and the mention of it avoided, death is a much bigger part of the culture, from the ofrendas of Día de Muertos to the ubiquity of skeleton iconography to the constant awareness of ancestors. I want to make death something that people can talk about more openly.

And lastly, I turn 40 next week, so let’s just say that mortality is on my mind 😉

Working with the AI

I started my project by creating an empty folder, loading it up into Cursor, and asking it to “Build a web app that calculates someone’s life expectancy based on lifestyle factors.” That was it. There were no technical specifications, no feature requests, and no tech stack. Just a simple request made in natural language.

Cursor gives you the option to select which LLM you want to use, including all the leading models from OpenAI, Google, and Anthropic. I kept it on “auto-select,” which means it decided which model to use depending on the situation.

It proceeded to immediately build a full-fledged React project, which took several minutes and involved creating an entire structure of multiple interlinked files. I asked it to open the app in my web browser, and it prepared the file, which I just needed to double-click.

Here’s what that very first version looked like:

Death Clock version 1

So the app now existed, but with one tiny problem: there was no way to input any personal information! I asked it to add input fields for each of the lifestyle factors, and in a couple of minutes they appeared. I put in my own information as a test, and it spit out the results:

After only about 5 minutes, I already had a functional web app! This alone is astonishing, as I would have probably needed hours to get even this much up and running on my own. I thought back to my early web design efforts using Microsoft FrontPage as a teenager in the 90s, and how that experience was so daunting that I gave up on the endeavor altogether.

I spent the next several hours adding features, which amounted to no more or less than asking for them in the AI chat window and waiting. Here’s what I changed, one element at a time:

  • Added a total of 17 questions, encompassing various aspects of a person’s life that influence their life expectancy
  • Added an in-line BMI calculator, based on a person’s height and weight
  • Asked the AI to create a logo of an hourglass and place it at the top of the page
  • Had it try out a couple of styles, settling on a muted, grey and blue color scheme
  • Added some interesting outputs and observations related to life expectancy to the “results” page, based on the answers to the questions
  • Added a pie chart visualizing a person’s remaining lifespan (which required Cursor to download and install a new library, which it handled on its own)
  • Added a call to action to check out my website at the end
  • Set up a repository on GitHub and published the app using GitHub Pages, so I can share it with others

All this took about 3-4 hours, but I would estimate around half that time was spent waiting for the AI to do the work, or for the new version to deploy, so I could view it in a browser. While all this was happening, I hung out with the kids, washed dishes, took a shower, and got some reading done. Instead of requiring an all-encompassing, immersive day of obsessive learning, which is what I would have expected, I actually had quite a relaxing, balanced day!

There were only a couple of hiccups I encountered during this project. At one point, there was a bug that would make the whole screen go blank when I clicked the “Calculate Life Expectancy” button. Cursor asked me to copy and paste the error message from the console into the chat, but before I even did that, it guessed what the problem was and proceeded to fix it by itself. Here’s what that interaction looked like:

Screenshot of chat with Cursor about error

I sometimes had to perform actions beyond just clicking “accept all,” such as typing “y” into the command line to allow it to proceed, or typing in my computer’s root password to allow it to install something, so I did have to pay a bit of attention and look out for next steps.

A few times, a new feature didn’t work correctly the immediately, and required follow-up fixes, such as this first attempt at a pie chart:

Result screen with error

One of the most surprising parts of working with an LLM in a coding environment is that the AI has context and knowledge about many, many domains that have nothing to do with code. For example, at one point, I got stuck with the GitHub settings, so I just pasted a screenshot of what I was seeing into Cursor, and got a precise diagnosis of what was wrong, plus step-by-step instructions on how to fix it.

But it also goes beyond software. At one point, I asked Cursor to tell me how robust or evidence-backed a question about income level was, and in seconds, it pulled in an academic paper that examined exactly this question. It still had to simplify the correlation between income and life expectancy into a multiple-choice question, but knowing there was at least some validity to this question gave me the confidence to move forward.

I kept assuming I would hit a roadblock and have to switch to a “real” LLM to do more serious research, planning, or structuring of questions. But that wasn’t the case: the LLMs that Cursor is drawing on are exactly the same ones you’d have access to via ChatGPT or Claude, so there’s no need to leave.

That also means that Cursor can do design work. I asked it to create a visual style reminiscent of the blocky, 8-bit graphics of early Nintendo games, but with a death-themed, macabre look. It instantly understood the assignment, using red and black to convey the right feeling:

Alternate design

I decided that look wasn’t quite right, so I had it pivot to a cleaner, more modern style. Here’s what that interaction looked like, replacing probably hours of work:

Design instructions

The ability to pivot on a dime like this and effortlessly try out a completely new direction is astonishing. Small experiments and whimsical curiosities can be indulged and tested without expending significant time or effort.

My 4 takeaways from vibecoding

This first experience of a few hours of vibecoding left me with 4 takeaways:

  • Learning to code is now optional
  • The new bottleneck is how you spend the time that’s saved
  • Software is the new frontier of book publishing
  • We’re entering a more impressionistic era of creation

Learning to code is now optional

Over the years, I’ve considered whether I should build an app many times. I live in the world of tech and software, and in many ways, the ability to create a new software tool is the pinnacle of agency in that world.

Yet every time, I’ve decided not to pursue building an app, either because I lacked the time to learn it myself, or didn’t want to spend the thousands of dollars it seemed to require to even build something basic.

But now, in a matter of hours and at almost zero cost, I can build something that’s genuinely useful. I didn’t learn anything about coding, but I think that’s overall a good thing. Learning can be fun and is certainly useful, but it isn’t always inherently good or necessary.

Why should the ability to leverage software be limited to those willing to spend months or years studying arcane details of technical implementation? Why should someone’s vision or mission require them to know the low-level details of how a webpage gets rendered? And now, nearly all of the details are “low-level.”

Learning coding is now optional, but I think AI tools will also make it easier to learn to code for those who decide they want to. At any point, you can bring in context from any part of the codebase and ask the AI to explain it to you at any level of detail you want. You can even have it explain things outside that environment, such as the many external systems and interfaces you’ll need to get a full-fledged website working.

This is such a remarkable level of accessibility for a technology that was previously very hard to use, and it’s difficult to predict how the world will change when everyone can wield the power of software.

The new bottleneck is how you spend the time that’s saved

It’s so fast to create and edit code this way that the bottleneck starts to become how fast you can move your mouse, the speed of your internet connection, how long it takes to deploy a new build, the speed of refreshing the page, etc.

I predict we’ll see a variety of efforts to speed up every little step involved in coding, the same way that factories once invested millions in reducing the time it took to switch a production line from one activity to another, as that became the bottleneck.

But more broadly, the true limiter on the quality of software that people will be able to produce using Cursor and similar tools is how they spend the time that AI frees up for them

You could spend it chilling by the pool or watching TV, but you have to remember that everyone else is also having all their time freed up, so the level of competition will increase like a rising tide. Many web apps that people will build this way are hobbies, or experiments, or complements to other projects. Still, many will have some kind of competition or alternative, and the only way to compete effectively will be to invest the time saved in new dimensions of quality.

Maybe you spend that time exercising and meditating, so that you can ground yourself and bring wiser, more holistic decision-making to the AI. Maybe you spend it reading and researching, so the knowledge underlying your app is richer and more nuanced. Maybe you spend it hunting for obscure sources or offline archives, so that you can incorporate context that the LLM doesn’t already know. Maybe you spend your time talking with potential customers, so your choices more accurately reflect what they want.

All of these are valid choices, and they will all become important dimensions of competition and quality, even more so than they already are today. The true scarce resource continues to be the time and attention of other people, and I only expect the battle for that attention to keep heating up.

Software is the new frontier of book publishing

One of the domains I’m most excited about applying these new tools to is book publishing. Books have changed so little over time, and increasingly suffer in comparison to other, far more interactive and engaging forms of media.

I don’t think bemoaning this fact and lecturing people on the importance of reading is helpful, but I do believe interactive web apps like this could make a tremendous difference. What if, every time you finished a book, or even a single chapter, you were presented with a link to a free, interactive, personalized web app that directly applied the ideas you just read to your own situation?

Instead of trying to guess how to apply a book’s ideas, or get upsold to a course, or have to get expensive support from a coach or consultant, you would have a self-serve piece of software you can immediately engage with.

The value of a book is that the author has taken an extraordinary amount of time to research and think deeply about an important issue, topic, or skill. That’s a rare thing in our hype-driven online world of disposable headlines. But that same slow-moving, timeless quality makes it very difficult for books to recommend or prescribe any given form of implementation. There’s just too much variation between individuals to offer a one-size-fits-all solution, and long publishing timelines mean that any solution printed in the pages of a book is likely to be obsolete by the time it hits the shelves.

This is a way to combine the best of both worlds: to deliver the timeless, wise, holistic wisdom of books, accompanied by a suite of personalized, customizable, up-to-date digital implementation tools, accessible in one click or tap. This is how you save the culture of reading – not by resisting change but by embracing it. I plan on making extensive use of this approach in my next book.

We’re entering a more impressionistic era of creation

One of the most continuously surprising aspects of AI-assisted vibecoding is how brief, imprecise, informal, and vague my instructions can be, and still be understood. I could almost always just say “Fix this” with a screenshot, or “Make this look better,” or even just “Improve the question,” and AI would figure it out.

This is so different from past technologies that require you to be extremely exact, specifying what you want with mathematical precision. Even a single wrong character in a codebase of thousands of lines could result in a catastrophic error.

My unclear instructions often resulted in better results, because the AI would misinterpret my intentions and make improvements I hadn’t even thought of. Some of the best ideas came from the AI, either because I asked it for ideas or because it contributed them spontaneously as it guessed what I was trying to achieve.

Like the transition in painting style from the Realism of the mid-19th century to the Impressionism of the late 19th century, driven by painters’ desire to capture changing qualities of natural light, fleeting moments, and spontaneous experiences using quick, expressive brushwork rather than carefully finished compositions, we’re going to see a similar transition in software design.

Interestingly, what sparked the transition back then was technology – the advent of photography meant that scenes could be captured with nearly perfect realism, which devalued that ability by humans. Human artists pivoted in reaction, exploring a new frontier of perception, novel color combinations, and everyday life.

I think we’ll soon see our technological creations becoming much more impressionistic, based on ambiguous premonitions, subtle feelings, or vague notions that we can’t fully articulate. We’ll see people create various kinds of software as artistic expressions, or to capture a fleeting memory, or to convey a single message. Software will become its own mode of creative expression for a much wider range of people now that the price of entry has plummeted to near zero.

4 tips for using Cursor

Despite my lack of commitment to learning anything in particular, I found that I did end up learning a few things about how to work effectively in Cursor:

  • You don’t have to deploy a new version with every new feature you build, as that takes a few minutes. But it’s a good idea to do so anytime you get a major new feature working, as you’ll be able to “roll back” to that point if you mess up anything in the future.
  • It’s always helpful to bring in the relevant context to any interaction with the AI chat. Cursor makes this very easy by including an “add to chat” button both in the code window and in the terminal, which are the two places you’d want to draw on for context
  • Pasting screenshots into the AI chat is remarkably helpful, as it allows the AI to see exactly what you’re referring to. Often, you don’t even need to say anything – the AI understands what’s working as soon as it sees how it’s appearing.

You can check out Cursor with a free trial at https://www.cursor.com. I signed up for the paid version for $20 per month to build my first app, though you’ll have access to a lot of functionality for free. I recommend their “getting started” documentation to learn about the basic features, which are more than enough to allow you to build your first simple app.


Follow us for the latest updates and insights around productivity and Building a Second Brain on X, Facebook, Instagram, LinkedIn, and YouTube. And if you’re ready to start building your Second Brain, get the book and learn the proven method to organize your digital life and unlock your creative potential.

The post Introducing Death Clock (And My First Experience with Vibecoding) appeared first on Forte Labs.

Rediscover Your Year: A Cheat Sheet for Reflecting with the Help of Tech

2024年12月23日 19:00

At the end of each year, I sit down to reflect on my milestones and memories—big and small—that shaped the past 12 months. It’s become one of my favorite rituals to celebrate progress and set the stage for what’s next.

Thankfully, technology can do a lot of the heavy lifting, making this process easier and more fun. If apps are already tracking so much of our lives, why not turn that data into a tool for reflection?

Here are some of my favorite shortcuts to use technology as a mirror for self-reflection and self-understanding:

Social Media

  • Instagram Highlights or Stories Archive: Check what you’ve shared publicly or privately saved as Stories
  • Facebook Memories: Review your “On This Day” feature for posts, comments, and photos from the year
  • X Bookmarks or Top Posts: Look for posts you bookmarked or those that received the most engagement (via analytics)

Productivity & Notetaking

  • Notion, Evernote, Obsidian, or other notetaking apps: Search your notes for key tags, projects, or frequent topics
  • Daily Journaling Apps (e.g., Day One or Reflectly): Review your daily or weekly entries to find personal highs, lows, or repeated themes
  • Task manager or project management apps: Look back through projects completed, milestones reached, challenges overcome
  • Calendar apps: Look through past events, meetings, special dates, etc.

Communications

  • WhatsApp or Text Messages: Scroll through photos, links, or memorable exchanges from key conversations
  • Emails: Use search terms like “thank you,” “congratulations,” or “milestone” to surface important exchanges

Finance

  • Bank Statements or Budgeting Apps (such as YNAB): Look at major purchases or investments, which often signify big life events or changes
  • Amazon Orders or Receipts: Review purchases that reflect memorable moments (e.g., items bought for vacations, hobbies, or special occasions)

Health & Fitness

  • Step-Tracking Apps (e.g., Apple Health or Fitbit): Review your best months, longest walks, or exercise streaks
  • Meditation Apps (e.g., Calm or Headspace): Look at your most meditated days or longest streaks
  • Diet Tracking Apps (e.g., MyFitnessPal): Spot trends or standout meals you might have recorded

Writing & Creativity

  • Drafts or Google Docs: Look for essays, brainstorms, or personal reflections you started but maybe didn’t finish
  • Art/Design/Drawing Apps (e.g., Procreate, Adobe Express): Find completed or in-progress creative works

Travel

  • Google Maps: Check your timeline, showing you where you’ve been the past year
  • Airline or Hotel Loyalty Accounts: Review your flight or hotel history to recall travels or trips
  • Trip Planning Apps (e.g., TripIt, Hopper): See itineraries or trips you had on your calendar

Learning

  • Online Course Platforms (e.g., Coursera, Udemy, Maven): Check what courses you started or completed
  • Language Apps (e.g., Duolingo): Reflect on your language-learning streaks or new skills

Content

  • Music: Check your Spotify Wrapped playlist or “Liked Songs” playlist
  • YouTube videos: Review your watch history, or “Liked videos” playlist
  • Netflix and other streaming services: Review your watch history
  • Books: Review your ratings on Goodreads or the books you’ve read on your Kindle
  • Photo apps: Look through your “favorited” album on your smartphone; or photos/videos you’ve shared via text message (which tend to be the best ones) 

A lot of these depend on which apps you currently use and how you use them, but I always find many meaningful tidbits that I’d completely forgotten about.

Want to see how all this comes together? Check out my annual reviews here for inspiration and ideas on how to craft your own.


Follow us for the latest updates and insights around productivity and Building a Second Brain on X, Facebook, Instagram, LinkedIn, and YouTube. And if you’re ready to start building your Second Brain, get the book and learn the proven method to organize your digital life and unlock your creative potential.

The post Rediscover Your Year: A Cheat Sheet for Reflecting with the Help of Tech appeared first on Forte Labs.

从Debian系统中删除某个版本的PHP

2024年4月8日 21:10

首先,你需要知道安装的PHP版本的完整包名。可以使用dpkg命令列出所有安装的包,然后找到PHP的版本。

dpkg -l | grep php

找到要卸载的PHP版本对应的包名后,使用apt-get remove命令进行卸载。例如,如果要卸载PHP 8.2,可以执行以下命令:

sudo apt-get remove php8.2*

如果你还想删除配置文件,可以使用apt-get purge命令:

sudo apt-get purge php8.2*

最后,运行autoremove来自动删除不再需要的依赖包:

sudo apt-get autoremove

温馨提示:确保在卸载PHP版本之前,不要影响到系统运行或其他服务依赖PHP的运作。如果你不确定,可以先进行测试卸载,通过添加–dry-run选项来模拟执行卸载命令:

sudo apt-get remove --dry-run php8.2*
❌
❌