kodyw.com

Kody Wildfeuer's blog

kodyw.com

“FeedShyWorm”: A Human-AI Collaboration Case Study

You can follow the actual conversation through this link: ChatGPT – Collaboration with AI on new game(openai.com)

gist of referenced code: https://gist.github.com/kody-w/019b788107b359dc7cf10fe477bb17a4

replit: feedShyWorm.py – Replit

Game GIF explanation: player is moving the grey dot (the food) to try and make impact with the worm’s “head” block. If that happens you get one point. Try to get as many points as you can but the heat gets turned up when the worm continues to grow with each piece. The highest score I have been able to achieve before knotting up is 8 (so far!).

When we dive into the realm of artificial intelligence (AI), we often find ourselves at a crossroads of potential and partnership. It’s a dance between the algorithmic agility of AI and the nuanced intuition of human creativity. Recently, I embarked on a project that exemplified this synergy, breathing new life into the classic ‘Snake’ game by reimagining it as “FeedShyWorm.”

The Genesis of “FeedShyWorm”

Like a nostalgic tune remixed for a new generation, “FeedShyWorm” reinvigorates the simple joy of the ‘Snake’ game with a twist—here, the player tempts a worm with food, indirectly steering its growth and ensuring its survival. The challenge? To grow the worm without entangling it into a self-made knot.

The Symbiotic Workflow

AI provided a solid foundation for the game’s development, offering a library of coding patterns and potential solutions. From rendering the game window to defining the worm’s wriggling motion, AI-generated pseudo-code laid out a clear path forward. Yet, it was human oversight that steered the project, filtering through the AI’s suggestions to find the perfect blend of innovation and tradition.

AI: The Technical Muse

In this collaboration, AI shone as a technical muse, suggesting complex algorithms for the worm’s growth and navigation. It handled pathfinding and error resolutions, effortlessly juggling logical structures to suggest efficient and robust solutions.

Human: The Creative Conductor

The human element brought irreplaceable intuition and judgment to the table. From the game’s initial concept to its final nuances, it was the human touch that molded AI’s raw output into a game that’s engaging and enjoyable. The decision to make the worm grow by two blocks with every piece of food and to introduce a game-over condition based on consecutive self-collisions came from a place of understanding the player’s experience—something AI is yet to grasp fully.

The Perfect Pairing

The crazy thing is this work took just a few hours of this collaboration work. If I were to do this task just by itself, I would have to invest A LOT more time to get the same result and I would argue that it is trivial work compared to delivering the actual value of the game.

The true beauty of “FeedShyWorm” lies in its balance. AI’s strength in handling the complexities of code is paired with the human ability to infuse emotion and appeal into the game. The AI proposes, the human disposes, and the result is a game that respects the player’s intelligence and capacity for strategy.

Conclusion: The Harmonious Blend

“FeedShyWorm” is a testament to the potential of human-AI collaboration. AI’s contributions are invaluable, but without human ingenuity, they are merely pieces of a puzzle waiting to be put together. This case study exemplifies the most optimal use of AI—to amplify human creativity, not replace it. Together, they unlock new dimensions of innovation, leading to outcomes that are greater than the sum of their parts.

As we move forward, “FeedShyWorm” stands as a prime example of this collaboration process, showcasing that the best way to harness AI is in tandem with the unique aspects of human creativity. Here’s to many more human-AI partnerships, where we explore uncharted territories with the wisdom of experience and the insights of intelligence—artificial and otherwise.

Until next time, remember—it’s not just about the code; it’s about crafting experiences. Experiences that teach us, entertain us, and most importantly, bring us together.

AutoGen AI: Powering the Next Brilliant Leap in Artificial Intelligence


It is undeniably an exciting era to be living in. We have witnessed revolutions in the technology industry through innovations like ChatGPT, which altered how we interact with machines. However, the unveiling of AutoGen AI now takes this progression to a whole new dimension.

Why Is AutoGen AI a Big Deal?

  1. Autogen introduces two revolutionary concepts that set it apart: the User Proxy Agent and the Group Chat Manager. These features are designed to address the challenges of feedback incorporation and scalability in multi-agent systems, ensuring a more intuitive and effective collaboration between humans and AI.
  2. User Proxy Agent: A New Era of Feedback Integration: One of the challenges in AI development has been the integration of user feedback into the AI’s learning process. Autogen’s User Proxy Agent innovatively tackles this issue by acting as an intermediary between the user and other AI agents. This agent not only facilitates communication but also ensures that user feedback is seamlessly incorporated, allowing for real-time adjustments and improvements. Whether it’s refining a data analysis task or adjusting parameters on a complex model, the User Proxy Agent ensures that your input is valued and acted upon.
  3. Group Chat Manager: Scalability and Collaboration: Collaboration is at the heart of Autogen’s philosophy. The Group Chat Manager expands the framework’s capabilities by allowing multiple AI agents to work together on a given task, mirroring the collaborative efforts seen in successful human teams. This tool is not just about adding more participants to a conversation; it’s about creating a synergistic environment where each agent contributes its unique strengths towards a common goal. From strategic planning sessions that require diverse perspectives to complex project management tasks, the Group Chat Manager facilitates a level of collaboration previously unattainable.
  4. Practical Applications and Beyond: The real-world applications of Autogen are as diverse as they are impactful. Imagine a scenario where AI agents, each specializing in different aspects of software development, collaborate to identify bugs, write code, and optimize performance—all while incorporating feedback from the development team in real-time. Or consider a content creation pipeline where AI agents handle research, draft initial outlines, and refine content based on editorial feedback, streamlining the production process while enhancing quality.

How AutoGen AI Can Change the World

  1. Accessibility To Complex Technologies: With its user-friendly design, AutoGen AI can make complex technologies accessible to end-users, democratizing the benefits of advanced technology.
  2. Reinventing Industries: AutoGen AI could revolutionize industries like healthcare, logistics, and more by automating and optimizing process workflows, aiding intelligent decision making and predictive analyses.
  3. Accelerate Innovation: The AI provides a seamless interface for coders, software developers, and data scientists to interact with advanced algorithms. This interface can accelerate innovation across a myriad of sectors.
  4. Foster Collaborative Learning: The self-learning attribute of AutoGen AI encourages a culture of continuous learning and knowledge sharing among users leading to holistic development.

The unveiling of AutoGen AI establishes a new milestone in the realm of artificial intelligence. It is an innovation that may drastically alter how we perceive and aid the integration of AI in our everyday lives. It is a symbol of the future!

I can’t wait to see how AutoGen AI will change the world one task at a time.

GitHub link: microsoft/autogen: Enable Next-Gen Large Language Model Applications. Join our Discord: https://discord.gg/pAbnFJrkgZ (github.com)

The AI Revolution: Embracing the Next Generation of 10x

Introduction

The landscape of technology has undergone a monumental shift with the explosion of artificial intelligence (AI). This next generation of technology rivals the steam engine in terms of productivity gains, transforming the way we work and live. As AI continues to advance, every programmer now has the potential to become a 10x programmer, provided they know how to harness the power of AI effectively.

The AI Code Revolution

AI’s ability to write code has revolutionized the software development industry. However, AI-generated code still requires human intervention for review and quality assurance. This new dynamic has led to the emergence of a new role – AI code review managers. Programmers now have the opportunity to morph into these managers, overseeing the work produced by AI and ensuring it meets the necessary standards.

The 10x Multiplier: Harnessing AI to Boost Productivity

My AI avatar generated on Midjourney

With AI’s ever-growing capabilities, everyone can now become 10x more efficient at their jobs – as long as they know how to use AI effectively. This dramatic increase in productivity extends beyond the realm of programming, encompassing a wide range of fields and industries. The key to unlocking this potential lies in understanding how to leverage AI to enhance our own skills and expertise.

Asking the Right Questions

In this new AI-driven world, the most important skill for the coming decade could be knowing what questions to ask AI to get the desired outcomes. The ability to communicate effectively with AI systems and guide them towards producing valuable results will set individuals apart from the competition.

The Great Divide: Those Left Behind

As AI continues to advance at an exponential rate, there is a risk that some individuals will be left behind. Those who fail to adapt and embrace AI technology may struggle to keep up with their peers who have successfully harnessed the power of AI. It is crucial for everyone to recognize the potential of AI and invest time and resources into learning how to use it effectively.

My AI Avatar describing one of my blog posts.

Conclusion

AI has brought about a new era in technology, with the potential to reshape our lives in ways we never thought possible. As programmers and professionals across all industries, we must adapt to this new reality and embrace the benefits AI has to offer. By learning to harness AI effectively, we can unlock the potential of 10x productivity gains and secure our place in the AI-driven future.

Go forth with AI!

Child starting the climb up the stairs

Essential Skills for My Career in Technology So Far

Introduction

When starting out I did not know what skills were needed in a technology career. Is success inventing an iPhone, building the next Linux distro, hacking into the most secure systems (white hat hacking of course), learning everything about the entire stack of the computer from bare metal to the Operating System to eyeballs looking at the screen, or is it solving LeetCode questions on a white board at a FANG company (this is not what real tech work looks like at all).

It is easy to get so intimidated that you give up on the field. You cannot do all those things at once to be the fabled 10X programmer so why even try? It’s too hard. Especially if you do not fit the common mold of the geek that is expected to be the one to succeed in the field.

Focus

Dedicate all your brain power to solving one hard problem at a time. If the problem is too big, cut it up into smaller big problems and solve one at a time. If you solve all the small problems with focus one at a time you also unlocked solving the scary big problem without the overwhelm. Focus is key.

Patience and persistence

Patience and persistence come into play when you will not be great at a new skill. It is unrealistic to think you are going to win the Tour De France the same day you learn how to ride a bike. This type of thinking makes people stagnant because it is uncomfortable not being very good at something when you are an expert and have full confidence in another skill. This needs to be pushed past – out of the comfort zone where the growth lies.

Be an eternal student

Listen to feedback, stay humble, and put personal improvements into action. Use the internet as your bigger, better second brain. Being able to describe the problem faced so that Google/StackOverflow/Bing/DuckDuckGo/Reddit/SomeRandomBlog can help lead you closer to the answer.

Prove stuff out

What works on paper does not always work in the real world. Do quick and cheap experimentation on solutions to make sure the path forward is not a cliff. Taking calculated risks and committing fully to grow and achieve big things. If you fail, then you need to utilize grit and staying power. When you get knocked down always get back up, smile, take a break to rest and regroup, and try again. You only fail when you stop trying.

Ability to cram information very quickly

If there is one skill that I have taken from my formal education, it is the ability to cram my head with information before a fast-approaching deadline. Maybe I procrastinated and waited until the night before the big test, but this is how the real-world works. You might get one night to prep for a big demo you know nothing about, but you need to be the expert by tomorrow morning. In my opinion this is the most important skill in our modern world: to be targeted to a skill at hand and not trying to keep everything in your head all the time. You might forget certain things, but you can go back and cram quickly to catch right back up.

Become the best in the world at one thing

Target your focus to get as good as you can on every aspect of the subject. Consider this your comfort blanket to build confidence and reputation as you rise in your career.  Use it as your “beachhead” to learn other content faster. You learned tech stack A, learning tech stack B will have some similarities that can help you take efficient shortcuts in cramming to get good at the new skill. This can be taken too far. One pitfall of specializing is to be pigeonholed into only your useful specialized skill.

Watch out for the dinosaur trap

In tech it is crazy how fast you lose skills if you do not use them every day. Tech skills are like a muscle: use it or lose it. Get hungry for the eternal learning adventure to not get stagnant.  If you do not brush up from time to time you will wake up one day and the skill will be gone. This is where good notes and cramming comes in to save you. 99% percent of all technology is unknown to every human. Step up to learn. Step up to do what needs to be done at this moment by facing the unknown even if it is not glamorous or flashy. If the project needs someone to reverse engineer archaic solutions no one knows anything about, then jump on it! It is useful for moving forward.

Teach what you learn

If you cannot explain a topic to someone else, you have not fully grasped the subject.

Richard Feynman

To teach is to learn the subject a second time. Write down the path that you went down to reach a solution. This might seem like a waste to you but when you need to cram again because you haven’t done it in two years this will catapult you back to expert status in a fraction of the time. Use your writings to help others reach the mountaintop you just climbed. They will greatly appreciate your help and you will strengthen bonds. If you cannot teach it, then more cramming is needed to become an expert quickly! Do not let perfect get in the way of good. Fight the ego trap of reinventing and improving the wheel if you can quickly take the wheel off the shelf to use. Find the fastest way to solve the problem and make improvements when they are needed. Do what you can with what you have at this current moment to make a positive impact.

Leveraging the work of others

Keep up with the community. Read blogs by experts in the field. Stand on the shoulders of giants to accelerate your ability to solve a problem. Watching YouTube content on new or old features to get up to speed. Exploring, trying yourself from tutorials, and expanding the tutorials from there to solidify your learning and to add more value to the content out there.

Walk in everyone’s shoes

Empathy is the most underrated skill in the modern world.  From the end user to the developers to the business customer to build something that is useful you need to see where the pain exists and help define it in a way that technology can solve. If there is no useful problem that is solved the created technology is nothing but a misguided, expensive toy.  Always fall back to the question: what does this solution solve for whom? The answer might not even be technology. If this is not the core behind every action then the whole effort is a massive waste of time, money, and energy. Empathy is the guide to stay on the path to solve the most impactful problems first.

Conclusion

This might seem like a lot of skills to get good at (it is!) but if you at least keep them in mind when something is not going right, or you need some direction because you feel stuck, they are a path forward to progress. They have helped me immensely when I needed a catalyst to get me to grow.

Enjoy their use!

My Favorite Dynamics 365 2020 Spring Release Enhancement – Quick Find search by View

To me the best feature that I have seen in the latest release for Dynamics 365 is subtle but a game changer. 

The change is related to how quick find has worked in the past. Let me give you some background. 

How things have always worked in Dynamics with Quick Find search.

Searching and filtering in Dynamics can be complicated.

One of the complications relates to the Quick Find capabilities. 

So, say you are on a view and you would like to quickly find something. (See what I did there? 😎)  You see the handy dandy search box so you type in what you want to search on and click enter. You see a few results but they do not fit the criteria of the view you are currently on. 

🤨🤨🤨

Confusing right? Yes, this has always been confusing for users and honestly myself when I first started learning the system. It is a gotcha of the system and it needs to be explained to be understood. 

Let me explain what happened in this scenario. 

Whenever the user uses the Quick Find search it ALWAYS uses the generic global search.

It has not taken into consideration any view filters. 

This has led to many situations where users get way too many results that they do not need and then they have to look through the returned records of the search.

This can be a huge waste of time and make the user frustrated.

Trust me – they have told me how frustrating this can be and I have looked far and wide for a solution in Dynamics. Sadly, there has been no easy ways to change Quick Find behavior without changing it for all users. 

Behold – we have a solution in this latest release for Dynamics.

The Quick Find search now respects the view!

Let me walk you through the change. 

Now – whatever view a user is on – the quick find WILL respect those filters. This is amazing. This is the behavior that everyone has always assumed was happening when they were searching. Less confusion and frustration for users. I love it. 

What does this mean going forward? 

More Accurate Searching.

Users will have more accurate Quick Find searching capabilities to narrow down the data to see what they are actually looking for without getting results that are not relevant.

Also – this makes separate apps more effective because you can curate the views that are specific to that role for the user to search on using Quick Find. Before this change apps didn’t make the most sense due to Quick Find not respecting the views given to the user – so they would see search results that have nothing to do with what they need. To me this makes breaking out functionality to apps the way to go due to this change. 

In conclusion – this change is small in scope but massive in impact to end users.

They will love this platform even more with amazing enhancements like these. Keep them coming Microsoft!

Go forth with Dynamics!

Page 1 of 4

Powered by WordPress & Theme by Anders Norén