• Home
  • About
  • Contact
  • RSS

of Tech and Learning

An ed tech blog for teachers and parents

  • Random Bits
  • Booklist

Generative AI: The Day I Stopped Searching and Started Creating

January 20, 2025 By Bryan Kerr Leave a Comment

Midjourney generated art of eacher in classroom wearing a black hoodie, wry smile, hacking on a laptop, comic book art, neon punk color palette

Generative AI can help make you feel like a hacker on your classroom workflows.

I’m just kind of dumbstruck by AI right now.

A problem cropped up at work, and AI helped me solve it in a way that wasn’t possible a year ago. It wasn’t a big problem, just the kind that gets on your nerves when some app doesn’t work how you want. The solution, however, offers a glimpse of how software will work in the age of AI.

The problem

Have you ever hit snags when learning to use new software? That’s when I ran into my problem. And it happened when I was trying to integrate a new app with my knowledge management software.

I’m learning to use Asana to help manage all my projects. It allows me to quickly braindump all the details of a project when they’re fresh in my mind after a meeting. After clearing the higher-priority tasks already on my plate, I can easily dive into the project following the roadmap I built a few days before.

One day, when I was reviewing my plan in Asana to roll out a new fleet of classroom printers, I realized I needed to add an email announcement task. Giving our staff a heads-up was important, but I wasn’t ready to write the email yet. I had a list of bullet points in mind, though, and I wanted to get them down somewhere.

However, I don’t like capturing writing ideas in process-oriented apps like Asana. You never know when the thoughts you write down will be useful, so I keep them all in one place, or app. That way, I don’t have to search through a bunch of apps to remember an idea.

Obsidian is my go-to tool for writing and taking notes. It’s fast, simple, and doesn’t get in the way of my thinking. Its marquee feature is the ability to link notes to each other, making them easier to find and rediscover forgotten ideas. It’s like my own personal Wikipedia, so that’s where I quickly wrote down my notes for the email announcement.

And this is also where I ran into the snag.

Asana and Obsidian wouldn’t work together. I couldn’t open my Obsidian note from the email task in my Asana project board. I could open links to Gmail messages from Asana, no problem. But it turns out that Asana does not support opening Obsidian links. When you click an Obsidian link in Asana, it opens a useless blank page in your web browser.

Screenshot showing a task management interface on the left and a note-taking interface on the right. On the left, the Asana task titled “Draft email announcement” is displayed with a due date of December 11, part of the project “New Copiers/Printers.” The task includes a link to draft points stored in Obsidian. On the right, the Obsidian note is titled “Email announcement for new classroom printers” and contains bullet points about the new printers’ features, including faster and more reliable printing, larger toner cartridges, duplex printing capability, and planned installation dates. The note also mentions that the printers were successfully used by another school district.

My goal is to be able to open an Obsidian note on the right from the link in the Asana task description.

Now that you know the problem, what’s the solution? It lies in a new way of doing things, but to get there, I first had to struggle with a conventional search.

Starting with an old mindset

To solve the problem, I did what I’ve always done: I started with a Google search. I Googled how to open Obsidian links from Asana. I spent 30 minutes fruitlessly navigating a maze full of dead ends.

Finally, I found this Reddit post about using a Chrome extension to open Obsidian links. I checked the extension’s details, and there was no privacy statement. Red flag #1. When I tried adding the extension, it warned, “The extension can read and change all your data on all websites.” Red flag #2. Yeah, not worth the risk given the lack of privacy statement.

That’s when I realized, “Dude, you’re doing it wrong!”

“It’s a trap!!”

My mistake was searching for someone else’s solution to my unique problem. Google is great for finding content about common, well-documented issues. Looking for a substitute ingredient for your cake recipe? Chances are a Google, Bing, or DuckDuckGo search will be successful. Try that kind of search for an original dish, however, and you’ll likely come up empty. My Google search got close, but it wasn’t a viable solution because of privacy concerns.

Savvier people are beginning to use ChatGPT to find answers, but they usually do it wrong. Many are still trying to use it as a search engine, treating it like a better version of Google. To some extent, it *is* better than Google. Google’s search results have degraded into a blue link morass of SEO-optimized content that serves Google’s need for ad revenue more than your need for answers. Whereas ChatGPT’s web search does a pretty good job of giving you a decent answer synthesized from several sources which are linked to at the end of the chatbot’s response. Like Google search, though, it’s still parroting solutions to other people’s problems.

Screenshot of a ChatGPT interface discussing the use of Obsidian URI links. The content explains how to link directly to a specific heading or block within an Obsidian note by appending a heading or block ID to the file parameter in the URI, with an example provided. Below the example, the text mentions the use of the “Advanced URI plugin” to extend functionality. A pop-up window on the left displays citations and related links from sources such as Obsidian Help and the Obsidian Forum.

Search I performed using ChatGPT’s Search the Web feature to figure out how to make a local link to an Obsidian note.

The New Hotness

I should have used AI to generate a solution, not search for one. Remember, this is a software problem: my browser didn’t know how to handle Obsidian links. But we also know (the only good thing to come from my Google search) from Reddit that a Chrome extension would work. For those that don’t know, a Chrome extension is like a mini app you can install in your Chrome browser (or Brave, Edge, Arc) to add functionality.

So I knew two important things for solving this problem:

1. Asana interacts with web browsers (opening Gmail links).
2. A Chrome extension could enable my browser to open Obsidian links.

Actually, I knew two more pieces of this puzzle.

3. The frontier AI models, like Claude, ChatGPT, and Gemini, are great at generating usable code.
4. I’ve used Anthropic’s Claude to generate a simple Chrome extension before.

So if I didn’t like the recommended Chrome extension, why not just build my own? Despite how much I use AI, I should have tried this first, but I’m still trying to extricate myself from the old ways of doing things…old habits and all.

A simple solution

It was surprisingly easy. All it took was one simple prompt of Anthropic’s Claude Sonnet, one that incorporated a snippet from the Reddit post I mentioned above (red text):

I need a chrome extension that will redirect urls that begin with https://obsidian//* to: obsidian://$1

Followed by one slight modification:

Modify the code so that the Chrome tab is closed after redirection.

Claude tells you exactly how to implement the code by simply copying and pasting it into two text files.

Screenshot of a Claude Sonnet conversation discussing the creation of a Chrome extension to redirect URLs starting with https://obsidian// to obsidian://. The response includes step-by-step instructions: creating a new directory for the extension, creating two files (manifest.json and background.js), copying the provided code into the files, and loading the extension into Chrome via Developer mode. An example demonstrates how the extension converts URLs, such as turning https://obsidian//vault/note into obsidian://vault/note.

Simple prompt that created a Chrome extension with instructions on how to install it.

And that’s all it took. Asana now cooperates with Obsidian, ratcheting up my productivity.

The bigger picture

Let’s take a moment to understand what happened here. Instead of being at the mercy of someone else’s software, I used AI to bend software to my demands. No need to send Asana a feature request and then wait for weeks or months, if ever, for them to implement it. Even more jaw-dropping, I’ve never coded a Chrome extension before. I didn’t know what files were required, or even what languages were used. Not only did Claude generate the code, but it also held my hand and clearly explained how to implement it.

And did you notice how I didn’t have to use Google search? Can you imagine if I did? It would have been a long and time-consuming endeavor starting with “how make chrome extension.” Then I’d wander down several paths learning the file structure and syntax, finding an appropriate algorithm, writing pseudocode, and so on. It would have been a multi-week project, with relatively little return on that effort. Thus, it never would have gotten done with all the other things on my plate.

Better at synthesis

Let’s also appreciate generative AI’s ability to synthesize information. Claude didn’t do a search for someone else’s code. It put 2+2 together and created something new out of three ideas: Chrome extension, URL redirection, and Obsidian app links. Since generative AI models contain much of human knowledge compressed into a few terabytes, they can make connections from seemingly unrelated concepts much easier than humans. This capability helps bridge knowledge gaps.

That said, generative AI works better with you as its guide. Since they’re very sophisticated statistical models, giving them extra information about what you’re looking for helps limit the possibility space. This is why telling AI to “act like a helpful assistant editor who excels at strengthening writing structure” can get you better feedback on blog posts, wink wink. Or in the case of my Chrome extension, Claude might have needed more prompting to generate a properly working extension if I had not included the “https://obsidian//* to: obsidian://$1” in the initial prompt.

It’s important to note that LLMs are still far from perfect at writing code. Claude does pretty well generating code for simple projects like Chrome extensions. However, more complex projects can get stuck in a loop of buggy or nonworking code. Current models can’t fit large code bases in their memory (aka context length). Sometimes they’ll create unnecessary code. I ran into a similar challenge when building an app to extract Amazon Kindle highlights and notes. As Shreya Shankar recounts, there’s more to software engineering than just generating code.

So what does this all mean?

The Future of Software

Like Ethan Mollick is fond of saying, this is the worst AI you’ll ever use. Experiences like mine will become more common. People will simply tell AI to generate the software they need, tailored to our own unique use cases. Watch this eight-year-old girl use AI to build a Harry Potter chatbot, for example. Most people won’t need to learn how to code. AI will be capable of generating almost any kind of app we can dream up. When that happens, there’s a much bigger question.

What skills will become important in a world where AI can do so much for you? I agree with Daniel Miessler that creativity and judgment will be paramount. If AI can build anything, what will you tell it to make? And how will you know when it’s done? Lots of real-world experience will be necessary to think outside the box and understand when the outcome is good. For example, software may do what you want, but is it safe? Are there security flaws? Can you think of which ways a malicious actor might attack it? Humans will likely be better than AI at coming up with unknown unknowns, so education must focus on developing these meta skills in students.

Stay Human

Play. Play a lot. Experiment. Not just with AI, but with everything. Go out and learn more about the world, even if it feels “less productive.” Be more curious. Ask more questions. Wonder. Understand what makes things useful, enjoyable. Push boundaries. Try weird stuff that doesn’t make sense.* Most of it won’t “work,” but you’ll feel more creative. Help other people do the same. Empathize with them. Be with them. You’ll be at your most human. And you will feel glorious.

*Kind of like this last paragraph coming a bit out of nowhere.

Join the discussion... Cancel reply

Your email address will not be published. Required fields are marked *

Get Updates

Sign up to receive new posts by email!

No spam! See my privacy policy.

Thanks for subscribing! Please check your inbox or spam folder to confirm your subscription.

Connect

  • Email
  • LinkedIn
  • Twitter

Copyright © 2013–2025 · Privacy Policy · Disclosure Policy

Manage your privacy
We use cookies to optimize our website and our service.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
Manage options
{title} {title} {title}
Manage your privacy
We use technologies like cookies to store and/or access device information. We do this to improve browsing experience and to show (non-) personalized ads. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
Manage options
{title} {title} {title}