Introduction:
As a programmer who's been around the block a few times, I've seen my fair share of languages, tools, and late-night forum threads. But when it comes to writing, it's a whole different ball game. The daunting task of stringing words together into coherent sentences? No, thank you. The crippling fear of failure and judgment from my fellow internet cynics? Hard pass. But then, like an unexpected plot twist in a B-movie, AI waltzed into my life and turned everything upside down.
The Bumpy Road to Avalonia:
So there I was, knee-deep in a quest to build a simple GUI application. I had dabbled in Electron but found myself disenchanted with the chaotic whirlwind that is the JavaScript ecosystem. Like a weary traveler seeking refuge, I stumbled upon Avalonia—a cross-platform app solution that, until then, had managed to elude me.
The Trials and Tribulations:
Embarking on my Avalonia adventure, I quickly realized that its documentation, while friendly, left a lot to be desired. As a Xamarin/UPW/WPF newbie, I struggled to get my app's window to resemble anything remotely functional. Hours of googling and scavenging through outdated forum threads only added to my frustration.
The AI Savior (Sort of):
Just when I was about to lose all hope, my CEO suggested trying out ChatGPT Plus (GPT-4) to see if AI could lend a helping hand. Desperate and mildly amused, I fed my code to the AI and asked for some divine intervention.
Now, I'm not saying the AI-generated code was a flawless masterpiece. In fact, it was pretty far from perfect. But it did introduce me to patterns and libraries that had been lurking in the shadows, waiting for their chance to shine. Armed with these newfound insights, I managed to whip my menu into shape.
Feeling invincible, I challenged ChatGPT to help me build a dynamic list for managing items. Again, the AI's response wasn't a silver bullet, but it did point me in the right direction. I learned about `ViewModel`
subclassing `ReactiveObject`
, and became aware of the magical realm of `ObservableCollection`
.
The Surprising Takeaway:
Look, I know my story might make seasoned GUI app developers cringe. But amidst the chaos, I found a way to integrate AI into my workflow—and it was weirdly enlightening.
So, here I am, blogging for the first time in my life, thanks to the strange AI future we find ourselves in. Is it perfect? No. But it's a start, and it's oddly liberating to let go of my fear of judgment and embrace this new world where even blog posts can be AI-assisted.
In conclusion, AI has shown me that sometimes it's worth stepping out of my comfort zone, whether it's trying new tools, building GUI apps, or sharing my experiences with the world. And hey, if nothing else, it makes for one heck of a story.
And for anyone interested here is the full conversation transcript I had with ChatGPT a few minutes ago leading up to this:
ME:Would you help me turn these notes into a blog post? "finding my voice with AI" problems: - writing is daunting - fear of failure exploring AI - I am not a desktop application programmer and my years of experience are all in browser-based, command line, and game engine development. - I need to build a simple gui application to manage some running background services with varying arguments. I figured this would be a good time to test out one of the cross platform app frameworks I haven't tried before. - I have some experience using Electron and I like the idea of it but I am more and more disenchanted with the javascript ecosystem, maybe I'm just getting old and the thought of trying to keep up with the ever-growing javascript ecosystem is exhausting. I've already been doing this for 20 years. - I've grown more and more accustomed to C# so I've decided to try to build this simple app using one of the several cross-platform app solutions. Through a decision process no more complicated than throwing a dart while blindfolded, I decided to try to build this using Avalonia. - The Avalonia docs are nice, approachable, but a little sparse in some places. Not complaining but I'm a n00b having never worked with Xamarin/UPW/WPF/etc.. so it feels like they gloss over some things. - After about 2 hours of googling and finding old stackoverflow and forum threads I'm not sure to what degree some of these are outdated if at all my window still doesn't have some basic features much less the dynamically managed list that will be it's primary purpose. - About this time it is the height of the AI revolution and my CEO is asking the team to try out ChatGPT Plus and see how our engineers might incorporate it into our workflows. - I decide to copy paste my current code into ChatGPT Plus (GPT-4) and describe what I want the menu to do and see if it can fix my code. It prints out a rephrasing of my question then some "fixed" code that didn't actually work. It DID however use some patterns and libraries I had so far not encountered in any documentation. Using that as a starting point I was able to very quickly google the documentation on that specific set of controls and get to menu working as I wanted in a clean and elegant way. - Taking this win I decided to ask ChatGPT to build me a basic dynamic list where i can edit properties of each item and add/remove them. And that is where I am now. Staring at AI generated code that I will not even attempt to Copy/Paste because the exact output is not what I need but it was able to show me exactly what classes would be appropriate to use in this situation. before this I was unaware of the benefits of creating a `ViewModel` subclassing `ReactiveObject` and only had passing awareness of `ObservableCollection` as a type of collection used in GUI apps. takeaway: I'm sure anyone worth a damn as a GUI app developer groaned a few times at my ineptitude here but my win that I think is worth sharing is how I am learning how to add this new type of AI tool into my workflows. And the P.S. takeaway is that I've never been willing to blog before because of the anxiety-inducing overwhelming task that is writing drafts and revising and proofreading and publishing only to likely be judged by cynical internet people, of which I am one. However in the face of this strange AI future, where every product description, article, press release, professional email, amazon review seems to be heading in the direction of being AI generated... why the hell not just ramble out some bullet points and stream-of-conciousness about my experience this evening then ask ChatGPT to turn it into a blog post. Welcome to the future.
ChatGPT:
Title: Finding My Voice with AI: Overcoming the Fear of Writing and Learning New Skills Introduction: As a programmer with years of experience in browser-based, command line, and game engine development, I often find the task of writing to be daunting, with the fear of failure lurking in the background. But now, thanks to AI, I have found a way to overcome my apprehensions and embrace the process of learning new skills while sharing my experiences in the form of a blog post. The Challenge: Recently, I needed to build a simple GUI application to manage some running background services with varying arguments. Despite having experience with Electron, I was growing disenchanted with the JavaScript ecosystem. So, after some consideration, I decided to try building the app using Avalonia, a cross-platform app solution I had never worked with before. The Learning Curve: Although Avalonia's documentation is approachable, I found it a bit sparse in some areas. As someone new to Xamarin/UPW/WPF, I struggled to implement basic features for my app's window. After two hours of googling and browsing outdated forum threads, I was still no closer to achieving my goal. Enter ChatGPT Plus: At this point, my CEO suggested that our team try out ChatGPT Plus (GPT-4) to explore how AI could improve our workflows. Intrigued, I decided to give it a shot. I pasted my current code into ChatGPT Plus, described what I wanted my menu to do, and waited for the AI to "fix" my code. The AI's response wasn't perfect, but it introduced me to patterns and libraries I hadn't encountered before. Using this new information as a starting point, I quickly found relevant documentation and managed to get my menu working as intended. Emboldened by this success, I asked ChatGPT to help me build a dynamic list for managing items. Once again, the AI-generated code wasn't exactly what I needed, but it did point me in the right direction. I learned about creating a ViewModel subclassing ReactiveObject and discovered the benefits of using an ObservableCollection. The Takeaway: My journey may have been frustrating at times, but it taught me valuable lessons about incorporating AI tools into my workflow. I realized that, with the right mindset, AI can become a powerful ally in learning and problem-solving. Embracing the Future of Writing: What makes this experience even more meaningful is that it helped me overcome my reluctance to blog. With AI-generated content becoming increasingly prevalent, I decided to embrace the future and let ChatGPT turn my thoughts into a blog post. So, here I am, sharing my story, unafraid of being judged by cynical internet users. In conclusion, I've found my voice with the help of AI, and I'm excited to continue learning, growing, and sharing my experiences in this rapidly evolving technological landscape.
ME:
thanks but I think this sounds a little too "upbeat" like a fluff piece. would you try again but using a more personal, comedic, light-hearted but still cynical voice?
See the article above for the unedited output