Speaker 1: Welcome to the deep dive. We take stacks of research, articles,
Speaker 1: notes and boil it all down for you. Today, we're
Speaker 1: really digging into something that's well everywhere, generative AI. How
Speaker 1: it's changing content creation, sure, but also sparking these huge
Speaker 1: questions about the future of work, especially for jobs where
Speaker 1: you know, AI is getting surprisingly good at the core tasks.
Speaker 2: Yeah, exactly, And our focus today is this fascinating guide
Speaker 2: Coding with AI by Chris Minnick. We really want to
Speaker 2: unpack how AI isn't just like another tool for programmers.
Speaker 2: It could actually make you a way better, faster, more
Speaker 2: efficient coder.
Speaker 1: Right, So the big question we're tackling in this deep
Speaker 1: dive is, well, how does this stuff actually work? And
Speaker 1: maybe more importantly, how can you use it? You know,
Speaker 1: harness its power to write better code, understand things like
Speaker 1: machine learning deep learning, even handle the ethical side of
Speaker 1: working with AI, because honestly, whether you're just starting out
Speaker 1: or you've been coding for years, when it comes to
Speaker 1: generative AI for coding, the source puts it perfectly, We're
Speaker 1: all dummies at this point.
Speaker 2: It really feels that way sometimes. So in this deep
Speaker 2: dive we'll lay out the basics machine learning, generative AI.
Speaker 2: We'll look at actually working with tools like Copilot replet
Speaker 2: and see how AI helps with automating the boring stuff
Speaker 2: but also improving and maintaining your code down the line.
Speaker 1: Okay, let's start unpacking that. Because we hear all these terms, right, AI,
Speaker 1: machine learning, deep learning, generative AI. They get thrown around
Speaker 1: almost interchangeably sometimes, but the source makes it clear they're
Speaker 1: related but distinct. How do you usually break that down?
Speaker 2: That's a really good place to start. Think of AI
Speaker 2: artificial intelligence as the big dream the whole field making
Speaker 2: computers smart, basically solving problems that usually need human intelligence. Now,
Speaker 2: machine learning mL, that's kind of our first big success
Speaker 2: story with NAI. It's where we don't hardcode every single rule.
Speaker 2: Instead we let the computers learn from massive amounts of data.
Speaker 1: Okay, so mL is teaching them to learn from data.
Speaker 1: What about deep learning DL? That one seems to be
Speaker 1: everywhere lately.
Speaker 2: Yeah. Deep learning is a specific, really powerful type of
Speaker 2: machine learning. This is where you get those artificial neural networks.
Speaker 2: They're structured with many layers, hence the deep It's sort
Speaker 2: of inspired by how our brains are wired with neurons
Speaker 2: and connections and these deep networks are incredibly good finding
Speaker 2: complex patterns and huge data sets like really.
Speaker 1: Huge DATCHA and Generative AI GENAI, the one making all
Speaker 1: the headlines that fits under.
Speaker 2: Deep learning exactly. GENAI systems are powered by these deep
Speaker 2: learning models, and their big trick is creating new stuff text, images, code,
Speaker 2: you name it, based on all that data they learned from.
Speaker 2: The quality has just exploded recently, mostly thanks to those
Speaker 2: deep learning breakthroughs.
Speaker 1: So how does that magic actually happen with language or code?
Speaker 1: I mean, how does the machine go from data to
Speaker 1: like writing a function?
Speaker 2: Well, it comes down to those neural networks. Again, our
Speaker 2: source explains they're trained on just enormous data sets. Think
Speaker 2: about recognizing a hot dog. You feed it millions of
Speaker 2: pictures labeled hot dog or not hot dog. It learns
Speaker 2: the patterns right, bun cylinder, shape, et cetera. For language,
Speaker 2: it's way more complex. They don't understand words like we do.
Speaker 2: Your input, like text or code, gets broken down into numbers.
Speaker 2: We call them tokens. Think of them like pixels for text.
Speaker 2: These tokens go through the network layers and the model
Speaker 2: predicts the next most likely token and the next building
Speaker 2: up a response.
Speaker 1: Okay, tokens make sense numbers instead of words, But how
Speaker 1: does it get context? How does it know bank means
Speaker 1: a riverbank here, but a financial bank there. Older model
Speaker 1: struggled with that, just going word by word exactly.
Speaker 2: That was a huge limitation. The real revolution, the thing
Speaker 2: that made Jennai take off for language was the transformer model.
Speaker 2: Transformers introduce this thing called a self attention mechanism. Instead
Speaker 2: of just processing things in order one after another, they
Speaker 2: can look at the entire input sequence, a whole sentence,
Speaker 2: a whole block of code, all at once and figure
Speaker 2: out how different parts relate to each other, which words
Speaker 2: or tokens are most important to each other.
Speaker 1: Wow, okay, so it's not just sequential anymore. It's like
Speaker 1: it grasps the whole context instantly. Yeah, that's a huge lead,
Speaker 1: and you can immediately see how that helps with the
Speaker 1: really repetitive, annoying coding tasks.
Speaker 2: Oh. Absolutely, take boilerplate code, you know, the stuff you
Speaker 2: have to write but nobody really enjoys. Like setting up
Speaker 2: a basic HTML page structure.
Speaker 1: Yes, necessary, but it's such a drag. You just want
Speaker 1: to get to the interesting part. So how does AI
Speaker 1: help there? What's the example.
Speaker 2: The source gives a great one. Chris Minnick just asks
Speaker 2: chat sheeppt for an HTML template. He specified like a
Speaker 2: three column flexbox layout top, navbar, footter, a pretty standard
Speaker 2: but non trivial setup.
Speaker 1: And did it like actually generate usable flexbox CSS? Yeah,
Speaker 1: because I've spent hours tweaking flexbox before it did.
Speaker 2: It gave him a full, ready to go HTML file
Speaker 2: CSS included that did exactly what he asked. It looked
Speaker 2: pretty much like what a human would write, but done
Speaker 2: in seconds. Compare that to finding snippets are starting from scratch.
Speaker 2: Huge time saver.
Speaker 1: That really is impressive for just a natural language. Quest
Speaker 1: makes you think about other common stuff. Yeah, like CRU operations, create, read, update, delete.
Speaker 1: Every app with data needs that right.
Speaker 2: Pretty much, and it's often tedious. The source shows an
Speaker 2: example of generating no JS code for CRU with Mango
Speaker 2: dB using Mongoose. The interesting part is the process. The
Speaker 2: first attempt, with a vague prompt to bing or chat GPT,
Speaker 2: gave back code that was okay ish, but it had
Speaker 2: this funny fly. It tried to use a simple DAVASCRIPT
Speaker 2: array as if it were a real database.
Speaker 1: Ah. Classic AI oversimplification. When it doesn't have enough context,
Speaker 1: so refining the prompt was key.
Speaker 2: Absolutely, This really drives home the importance of prompt engineering.
Speaker 2: When the prompt was updated to clearly say no JS, Mango, dB, Mongoose,
Speaker 2: the result was way better, impressively human like code actually
Speaker 2: latest dramascript, syntax, error handling, even comments. Then, of course
Speaker 2: you still have to do the actual setup and PM
Speaker 2: and it install Mondose, run the script, check the database,
Speaker 2: but the code generation part was solid.
Speaker 1: It shows that iteration, that back and forth is crucial.
Speaker 1: You guide the AI exactly.
Speaker 2: It's a partnership.
Speaker 1: So AI handled the gruntwork freeze up brain space. That's massive.
Speaker 1: But what about when you're in the code wrestling with syntax,
Speaker 1: trying to remember some specific API method. AI is an
Speaker 1: intelligent partner, right.
Speaker 2: Definitely, Just remembering syntax or looking it up is a
Speaker 2: huge chunk of programming time. We've had code completion for
Speaker 2: ages like Microsofts and Tellisons back in ninety six, useful, but.
Speaker 1: Limited, right, suggesting the next word or function name. Jenny
Speaker 1: I takes this way further.
Speaker 2: I assume, oh totally. Tools like getthub, Copilot, Amazon code Whisper.
Speaker 2: They don't just suggest the next word. They can suggest
Speaker 2: whole lines, entire functions, even blocks of code. They learn
Speaker 2: from massive code data sets, but also look at your
Speaker 2: current project, imported libraries, other open files for context. The
Speaker 2: source mentions copilot helping with the arguments for array dot reduce.
Speaker 2: That's a common one that trips people up.
Speaker 1: Oh yeah, reduce always takes me a second look. But
Speaker 1: what about learning news syntax? Can these tools actually teach
Speaker 1: you or just remind you?
Speaker 2: They can definitely help you learn. The chat interfaces are
Speaker 2: great for asking how do I do X in language? Why?
Speaker 2: But and this is a big butt from the source,
Speaker 2: you have to watch out for the training data cutoff
Speaker 2: dates Like GPT three doesn't know about JavaScript features added
Speaker 2: after September twenty twenty one. GBT four is much more current,
Speaker 2: but it's still a moving target.
Speaker 1: Always verify good point, so it's generating helping with syntax.
Speaker 1: Can it also check your code? Like linting? That seems
Speaker 1: like a natural fit.
Speaker 2: It is, so linting for anyone maybe not familiar, is
Speaker 2: like a superpowered spell checker and grammar checker for your code.
Speaker 2: Static analysis it finds potential errors, style issues, bugs without
Speaker 2: even running the code.
Speaker 1: And generative AI tools like Bard or whatever can basically
Speaker 1: act like a linter now pointing out typos or awkward
Speaker 1: style exactly.
Speaker 2: Or you have tools like eslin AI that integrate with
Speaker 2: existing linters. They don't just flag the issue, they can
Speaker 2: give you a natural language explanation of why it's considered
Speaker 2: bad practice.
Speaker 1: This all leads to a big question about to code,
Speaker 1: doesn't it? Is AI a crutch or is it like
Speaker 1: having a tutor. There's that whole debate in education.
Speaker 2: Yeah, the source leans towards AI becoming a normal and
Speaker 2: essential tool for learning, much like Google or textbooks are now,
Speaker 2: but it stresses, really stresses that there's no substitute for
Speaker 2: gaining experience through writing code or from interacting with more
Speaker 2: experienced programmers. AI can assist, it can explain, but it
Speaker 2: doesn't replace actually doing it and learning from humans.
Speaker 1: That makes sense, which brings us to AI pair programming.
Speaker 1: Sounds futuristic, but it's happening. The model is you're the
Speaker 1: navigator doing the high level thinking, setting direction with comments
Speaker 1: and code, and the AI is the driver or assistant,
Speaker 1: suggesting code snippets as you go. What are the pros
Speaker 1: and cons there?
Speaker 2: Well, the pros are pretty clear less time hunting for syntax,
Speaker 2: less typing, boilerplate. Your AI partner is always there, super
Speaker 2: fast and knows tons of different ways to code things
Speaker 2: from its training. No waiting for a human partner.
Speaker 1: But the cons I mean a human pair programmer does
Speaker 1: more than just type, right. They challenge ideas, spot bigger
Speaker 1: architectural issues.
Speaker 2: Exactly, you lose that deeper knowledge sharing and critical feedback
Speaker 2: loop you get with a human. Plus the AI suggestions
Speaker 2: might be subtly wrong, outdated, or even introduce security vulnerability
Speaker 2: is a human would catch. And here's the key takeaway
Speaker 2: from the source on this AI pair programming works best
Speaker 2: for coders who know their language and have experienced writing
Speaker 2: code without the use of AI. The AI, as the
Speaker 2: source puts, it, speaks confidently but doesn't know anything about programming.
Speaker 2: It's pattern matching, not true understanding.
Speaker 1: Right, It's a tool for someone who understands, not a replacement.
Speaker 1: The source walks through building a trivia game with Copilot
Speaker 1: to show this, right.
Speaker 2: Yeah, it's a good practical example. Start with index dot html,
Speaker 2: write a detailed comment explaining the game. Copilot generates some
Speaker 2: starter HTML. Then you refine it. Tell it you want
Speaker 2: JavaScript data from a specific file datatrivia dot js, tell
Speaker 2: it to use radio buttons. Rance Copilot generates the trivia
Speaker 2: Questions dot js data structure. Then, because it sees both
Speaker 2: index dot html and Trivia Questions dot js are open,
Speaker 2: it uses that context to help write the functions in
Speaker 2: the main trivia dot js file.
Speaker 1: So it's that iterative cycle again. You write some code,
Speaker 1: write a comment, accept or modify a suggestion, test it out.
Speaker 2: Exactly, and after maybe twenty minutes or so on the
Speaker 2: second try, you end up with a somewhat functional trivia game.
Speaker 2: Not perfect, but a solid start built collaboratively.
Speaker 1: That's pretty cool. And for people who prefer coding right
Speaker 1: in the browser, there's Replet.
Speaker 2: Yeah. Replet's an interesting platform. It's an online ID, so
Speaker 2: no local setup needed. It's got collaboration built in deployment,
Speaker 2: and its own suite of AI tools things like generate, debug, explain,
Speaker 2: modify code, plus the copilot.
Speaker 1: Style completion, and the source shows using it to spin
Speaker 1: up a quick website, even for a fake band called
Speaker 1: Grapefruit Pulp.
Speaker 2: Right. It just shows how quickly you can get a
Speaker 2: project moving using these integrated AI features in an online environment.
Speaker 1: So we've seen AI generate code, help and syntax act
Speaker 1: as a pair programmer. But what about improving the code
Speaker 1: we already have refactoring, testing, maintenance.
Speaker 2: Yeah, that's another huge area where AI is making inroads.
Speaker 2: Let's talk refactoring first. That's improving the code's internal structure
Speaker 2: and making it cleaner, more efficient, easier to understand without
Speaker 2: changing what it actually does.
Speaker 1: And the source uses that great term code smells like
Speaker 1: something's a bit off, indicating a deeper potential problem. Right,
Speaker 1: good lead to code rot if you.
Speaker 2: Ignore it exactly. It's a perfect analogy. And these smells
Speaker 2: fall into types dispensables like duplicate code or comments that
Speaker 2: just state the obvious. Bloaters like massive functions or classes
Speaker 2: doing too much, abusers, maybe using language features incorrectly, couplers
Speaker 2: where different parts of the code are way too dependent
Speaker 2: on each other, and change preventors things that make future
Speaker 2: updates really hard.
Speaker 1: So can AI like copilot chat actually detect these smells?
Speaker 1: Can it sniff out a bloater function?
Speaker 2: I can try? In the tiktac toe example from the source,
Speaker 2: copilot Chat did identify several smells a function that was
Speaker 2: too long magic numbers just unexplained numbers in the code,
Speaker 2: also inconsistent naming, not enough comments, and using global data
Speaker 2: when it could have been better encapsulated.
Speaker 1: Okay, so it found the smells, did it suggest how
Speaker 1: to fix them, like actual refactoring steps.
Speaker 2: It did make suggestions, for instance, moving event handlers out
Speaker 2: of the HTML and into the JavaScript, or wrapping the
Speaker 2: game state in a class to avoid global variables. However,
Speaker 2: the source also cautions that trying to get Copilot to
Speaker 2: automatically fix the code sometimes introduce new errors, and for
Speaker 2: more complex things like improving the tic tac toe AI
Speaker 2: player itself, the suggestions weren't always great, right, So.
Speaker 1: Again, it's a helpful assistant for identifying issues and suggesting approaches,
Speaker 1: but you absolutely need to review and test its suggestions carefully.
Speaker 1: Don't accept a suggestion blindly.
Speaker 2: That's the constant refrain and it's crucial. Now, let's shift testing.
Speaker 2: The source gives that fun anecdote about Admiral Grace Hopper
Speaker 2: and the first literal computer bug A moth. Testing is
Speaker 2: just fundamental.
Speaker 1: Absolutely, Yeah, I got to make sure the code does
Speaker 1: what you think it does. How does AI help with
Speaker 1: the testing process itself? Planning writing tests.
Speaker 2: Both actually for planning. AI can analyze requirements documents to
Speaker 2: suggest test cases or scenarios. It can help identify which
Speaker 2: parts of the code are riskiest and need more testing.
Speaker 2: It can even simulate user journeys to find potential problems.
Speaker 1: That's pretty advanced and for writing the actual tests like
Speaker 1: unit tests. The source mentions using jest with copilot chat.
Speaker 2: Yeah, once you have just set up, you can literally
Speaker 2: prompt Copilot like write just test for the checkwin function
Speaker 2: in this file, and it will generate test cases trying
Speaker 2: to cover different scenarios. And you can even ask for
Speaker 2: coverage reports.
Speaker 1: But there's a catch, right, I've heard AI can sometimes
Speaker 1: write tests that pass even if the code is wrong.
Speaker 2: Yes, that's a massive pitfall, the source highlights. Just because
Speaker 2: all the AI generated tests passed does not mean the
Speaker 2: code is correct. There's an example with a simple sum
Speaker 2: number function that had a bug. Copilot initially wrote tests
Speaker 2: that confirmed the buggy behavior. You have to be really
Speaker 2: specific in your prompts, and more importantly, you need to
Speaker 2: understand the code well enough to know if the tests
Speaker 2: are actually validating the intended logic, not just whatever logic
Speaker 2: happens to be there. Human oversight is non negotiable.
Speaker 1: Got it tricky? What about TDD test driven development? Writing
Speaker 1: the failing test first, then the code can AI fit
Speaker 1: into that workflow?
Speaker 2: It can help you write the failing test. Then you
Speaker 2: can ask copilot to help write the code to make
Speaker 2: that specific test pass. But the source author found that
Speaker 2: sometimes in the TIC TAC TOE TDD process, copilot got
Speaker 2: weirdly stubborn and refused to answer programming questions, forcing them
Speaker 2: to write the con manually. It seems like it might
Speaker 2: struggle with that specific constrained TDD cycle.
Speaker 1: Sometimes interesting, So it's not quite seamless there yet. Okay.
Speaker 1: Beyond writing and testing, documentation and maintenance huge parts of
Speaker 1: the software life cycle.
Speaker 2: Absolutely. Documentation breaks down into internal for other devs like
Speaker 2: code comments, design docs, and external for users like read
Speaker 2: deems tutorials, API docs.
Speaker 1: Right and for comments. There are tools like mintlified doc
Speaker 1: writer in vs code that use AI to generate them.
Speaker 1: How good are they?
Speaker 2: They can be useful for generating standard stuff like jas
Speaker 2: dot comments explaining parameters and return types, but the source
Speaker 2: compares AI comments to human written ones for some underscore
Speaker 2: dot JS functions. The verdict AI can be detailed, but
Speaker 2: sometimes overly wordy, and it often misses the nuance. The
Speaker 2: why behind the code that a human developer would include
Speaker 2: makes sense.
Speaker 1: It explains the what, but maybe not the why. What
Speaker 1: about visual docs diagrams?
Speaker 2: Yeah, tools like draw dot io can now use AI
Speaker 2: to generate diagrams from text prompts. You could ask it
Speaker 2: to make a sequence diagram for making an apple pie,
Speaker 2: or describe your software components and it'll try to visualize it.
Speaker 2: Pretty handy for quick diagrams.
Speaker 1: And API documentation that's often the pain point. Using OpenAPI Specification.
Speaker 2: OAS, huge timesaver Copilot can help generate that OAS file,
Speaker 2: usually in eamal format, describing your API endpoints. Then tools
Speaker 2: like read me can ingest that file and automatically create interactive,
Speaker 2: user friendly API documentation websites.
Speaker 1: That's slick and the source mentions. Create your own chatbot
Speaker 1: for your API docs using chat GPT.
Speaker 2: Plus, Yeah, you can create a custom GPT upload your
Speaker 2: OAS file as its knowledge base. Then you or your
Speaker 2: users can ask it questions like how do I authenticate?
Speaker 2: Or show me how to create a user with Python,
Speaker 2: and it'll answer based on your specific API docs. Still
Speaker 2: might make mistakes, but very cool.
Speaker 1: Potential, very cool, indeed okay. Final, big area software maintenance
Speaker 1: keeping the code alive and healthy.
Speaker 2: Right and the source breaks maintenance into four types. Corrective
Speaker 2: fixing bugs, adaptive, changing code because the environment changed, like
Speaker 2: a new OS version, perfective adding new features or removing
Speaker 2: old ones. And preventative making changes now to prevent problems later,
Speaker 2: like refactoring or improving security.
Speaker 1: So how does AI help across those four types?
Speaker 2: In lots of ways. Automated error detection and reporting, Predictive
Speaker 2: maintenance like analyzing logs to guess where failures might happen,
Speaker 2: helping with refactoring as we discussed, managing dependencies, checking for
Speaker 2: outdated libraries, analyzing user feedback from bug reports or feature requests,
Speaker 2: and a big one security Vulnerability scanning tools like Snick
Speaker 2: can scan your code and dependencies, find known vulnerabilities, and
Speaker 2: sometimes even automatically create pull requests with the fixes.
Speaker 1: Wow automatically opening pole requests. That's proactive as all ties
Speaker 1: into code quality and managing.
Speaker 2: Technical debt right exactly. Code quality isn't just does it
Speaker 2: work functional quality, but also is it well built? Easy
Speaker 2: to change? Structural quality. Technical debt is that idea that
Speaker 2: taking shortcuts now means you'll pay more later in terms
Speaker 2: of time and effort to fix or refactor things.
Speaker 1: And tools like code Climate automate checking for that. Yeah,
Speaker 1: giving your code a grade.
Speaker 2: Yep, you connected to your repo. It analyzes the code
Speaker 2: for maintainability issues, complexity, duplicate. It gives you a grade
Speaker 2: AF and estimates how long it would take to fix
Speaker 2: the identified technical debt.
Speaker 1: The source mentions actually beating code Climate's estimate for fixing
Speaker 1: things in the signapage dot js file.
Speaker 2: Right, which shows human intuition and focus can still sometimes
Speaker 2: outperform the automated estimate, but it also highlights that fixing
Speaker 2: one thing often uncovered other bugs. It's a continuous cycle,
Speaker 2: achieving that a gray doesn't mean you're done forever. Maintenance
Speaker 2: is ongoing.
Speaker 1: Okay, that's a lot we've covered. Bringing it all together,
Speaker 1: what are the really crucial takeaways for you listening right now? First,
Speaker 1: maybe obviously, don't stop coding yourself. You need to lead
Speaker 1: use AI as a tool, but rely on your own
Speaker 1: skills first and foremost.
Speaker 2: Absolutely, and when the AI gives you something weird or unexpected,
Speaker 2: ask follow up questions, probe it, don't just accept confusing output,
Speaker 2: and always double check against official documentation. AI models can
Speaker 2: be out of date or just make things up. They
Speaker 2: call it hallucination.
Speaker 1: Verify facts, good point and be specific with your prompts.
Speaker 1: Give clear context, providing examples if you can. The better
Speaker 1: your input, the better the AI's output. Garbage in garbage
Speaker 1: out still applies, and security. Be careful anonymized sensitive data
Speaker 1: before pasting it into a prompt. Don't feed the AI
Speaker 1: your company's secret sauce or user.
Speaker 2: PII critically important. Also, keep your tools updated. This whole
Speaker 2: field is moving incredibly fast, new models, new features, improved accuracy,
Speaker 2: Stay current and remember the limits. AI isn't magic. It
Speaker 2: learns from existing data. If you're doing something truly novel,
Speaker 2: something way outside its training data, it probably won't be
Speaker 2: much help.
Speaker 1: Right. And finally, that classic advice from Donald Knuth maybe
Speaker 1: more relevant than ever with AI tempting us to tweak endlessly.
Speaker 1: Avoid premature optimization. Spending hours to shave off a few microseconds,
Speaker 1: potentially introducing bugs usually not worth it. Get it working
Speaker 1: correctly and clearly first, then optimize if needed.
Speaker 2: So true, we've really peeled back the layers here, haven't we?
Speaker 2: From AI automating the boring bits to being a code partner,
Speaker 2: to helping refactor, test, and maintain software. We've seen the
Speaker 2: amazing potential, but also hammered home that need for human oversight,
Speaker 2: critical thinking, and just continuous learning. Yeah.
Speaker 1: Chris Minnick, the author of our main source notes. He
Speaker 1: wrote the book about a year after chat GPT burst
Speaker 1: onto the scene. He says, these tools have begun to
Speaker 1: change how we think about creating content.
Speaker 2: So think about everything we discussed today. Here's something to
Speaker 2: chew on. If AI genuinely helps you code faster, maybe better,
Speaker 2: maybe learn new things more quickly. What totally new, more ambitious,
Speaker 2: more creative problems could you start tackling now, Problems that
Speaker 2: maybe seemed out of reach?
Speaker 1: Book?
Speaker 2: Yeah, what does this unlock? Not just for coders, but
Speaker 2: for anyone trying to build something new or solve a
Speaker 2: tricky problem? What's the next horizon?
Speaker 1: This opens up lots to think about. Thank you for
Speaker 1: joining us on this deep dive. Keep learning, keep experimenting,
Speaker 1: keep asking questions. It's an exciting time.