From Pack Rat to Cyber Squirrel
Published: 2023-06-15 07:57:19

---
title: From Pack Rat to Cyber Squirrel
published: true
date: 2023-06-14 22:19:12 UTC
canonical-url: https://closetgeekshow.ca/chatgpt-code-generation-learning-from-pack-rat-to-cyber-squirrel

---

I collect too many links. I was a pack rat as a kid, my locker overflowing with random knick-knacks and other garbage I didn't need but felt compelled to hoard. As I ~~became an adult~~ got older, that behaviour transitioned to collecting things I found online.

- Things I'm researching right now

- Things that might be interesting in the future

- Things that would have been helpful in the past

- Things I want to read, listen to, watch, play

- and every open-source software package that looks halfway interesting

The problem is I so rarely go back to check on all those links. Which isn't so bad when it's some article I forgot about, one lazy Sunday and I'm all caught up. When it comes to the software packages, it's another story. It takes so much work and time with my current process and I rarely make much progress:

1. Get the environment set up right

2. Figure out how to get the Hello, World! example going

3. Try something a little more challenging or robust

4. Get flustered when it doesn't go right

5. Leave it for a week and then forget about it

6. Remember it, return to it, and be completely lost

7. GOTO 1

## When Link Love Turns into Link Overload

So my list of software packages to learn just gets larger and larger. Lately, at least 10 times _this week_, I've landed on a GitHub page and thought to myself: "Hey this looks cool, I should star this" and it's _already_ starred. It's a real problem, this pile only seems to get larger. I need some help moving forward.

I've been thinking on and off about building a personal assistant application to help me manage this for a few years, mostly thinking it was an unfeasible goal. But seeing the capabilities of ChatGPT (and other LLMs like it), in these last few months. I'm starting to think it might be time for me to try to make something.

## ChatGPT's Code Conjuring

Here's a prompt I gave ChatGPT 4 (FYI: you get 5 messages every 3 hours for free from [Forefront.ai](https://www.forefront.ai/)):

> You're an AI master at writing javascript code, you are given a new library name, a short description and a set of urls describing it. Please read the information online describing how the tool should be used and then provide a non-trivial real world to-do list example of it.
> 
> Library: animejs URLs: [https://github.com/juliangarnier/anime](https://github.com/juliangarnier/anime) [https://animejs.com/documentation](https://animejs.com/documentation)

It spit out a bunch of code that I then copy-pasted into a Codepen, it had just one error to fix. It was missing a closing "}" at the end of the script _that's it_. I fixed it and it WORKED! Only 10 minutes from finding out about this free GPT4 option from Forefront to having a [working demo on Codepen](https://codepen.io/closetgeekshow/pen/xxQZOOp). Look at that slick animation when you add a task!

Blew. My. Mind. 🤯 You can find the [full chat transcript here](https://chat.forefront.ai/share/kbqevhbd0soxrpbt) if you want to try it for yourself.

## Taking the Next Steps in Link Management and Learning

Time to figure out where to go from here. I have some ideas, a lot of them actually, I'll just regurgitate them stream of consciousness style here:

- Write a better post about this long-term assistant plan (...and my [Axure script](https://closetgeekshow.ca/dipping-my-toes-in-github) from earlier this week). I'm excited to talk about the full idea this experiment is connected with in detail. If only to clarify it for my benefit and have a proper plan of action.

- Learn about planning prompts. A thing I see quite often in tutorials and articles about prompts is a block of text that seem to describe the character and purpose of the AI for that session. I hope that I can better understand their structure and preferred content so that I can have a library of prompts prepared to generate for various tasks. Is there a [directory of ChatGPT prompts](https://prompts.chat/) somewhere? (EDIT: Yes, I found one in March. Guess where it was? IN THE LINK DATABASE 😳)

- Make more things.

- Error checking and automated fixing of the code. I was utterly surprised that it worked so well on the first try. This isn't my first time getting ChatGPT to write code (I should share my experiments with Unity C# generation sometime), so I know it sometimes needs massaging to get right or fix little syntax errors.

- Learn about text summarization. Beyond code generation, I expect this assistant system to also give me summaries of articles and non-codey things that show up in my links database. This I haven't been too worried about, I have a [tutorial I found today](https://blog.streamlit.io/langchain-tutorial-3-build-a-text-summarization-app/) that should help me make progress.

- What about long-term storage? I've read some things about that, but I'm far from understanding it. Is this what a vector database is for?

- Figure out if this still works on a local machine. I've been meaning to look at [GPT4All](https://gpt4all.io/index.html), it runs locally with about 16GB of RAM and no GPU requirement. I'd settle for slower output or lower quality (so long as I can fix it after) if it meant I wasn't beholden to a third party to make it happen. [I found another tutorial](https://towardsdatascience.com/how-you-can-use-gpt-j-9c4299dd8526) to learn that too.