Eric Sloof
https://ntpro.nl/blog/
Cloud Foundation Specialistenhttps://yt3.ggpht.com/-EiO_PPbirFM/AAAAAAAAAAI/AAAAAAAAAAA/f5LtRQUQ2aA/s100-c-k-no/photo.jpgRSS: Eric Sloof - Cloud Foundation Specialist
https://ntpro.nl/blog/
100100Python Mastery From Basics to Brilliance - How-to Video on Configuring an OpenAI API Key
https://ntpro.nl/blog/archives/3760-Python-Mastery-From-Basics-to-Brilliance-How-to-Video-on-Configuring-an-OpenAI-API-Key.html
<p><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/arju0cpMays?si=GpSMonJGHoN_3o97" title="YouTube video player" width="560"></iframe></p>
<p>Greetings, lovers of AI! I'm thrilled to unveil my new explanatory video that demystifies the initial setup with OpenAI. This detailed walk-through is constructed to make your AI exploration seamless and exciting. It doesn't matter if you’re a seasoned developer or an intrigued novice, this tutorial is engineered to offer precious insights and actionable instructions. </p>
<p>The video explores: </p>
<ul>
<li>Obtaining Your OpenAI API Key: An obligatory action for identification and interactive purposes with OpenAI's robust API. </li>
<li>Establishing the Environment Variable: In this part, I illustrate how to configure the OPENAI_API_KEY in your command line, a crucial step for all AI endeavors. </li>
<li>Implementing a Python Script: Offering a straightforward but powerful script that interacts with OpenAI API, clearing your path to countless AI implementations. </li>
</ul>
<p>Cutting-edge Tech Integration: </p>
<p>A thrilling component of this guide is the incorporation of Professional Voice Imitation technology by <a href="https://elevenlabs.io/">ElevenLabs</a>. This advanced instrument has helped me produce a more compelling and lively narration for the video. The use of voice imitation doesn't just boost the audibility and caliber of the audio, but also exemplifies the remarkable capabilities of AI in revolutionizing content generation. </p>
<a class="block_level" href="https://ntpro.nl/blog/archives/3760-Python-Mastery-From-Basics-to-Brilliance-How-to-Video-on-Configuring-an-OpenAI-API-Key.html#extended">Continue reading "Python Mastery From Basics to Brilliance - How-to Video on Configuring an OpenAI API Key"</a>
Eric Sloofnospam@example.com (Eric Sloof)2024-02-22T09:17:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37600https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3760Free Training Course - Designing, Configuring, and Managing the VMware Cloud
https://ntpro.nl/blog/archives/3759-Free-Training-Course-Designing,-Configuring,-and-Managing-the-VMware-Cloud.html
<p>Keeping up with the ever-changing world of cloud technologies can be a real challenge for both companies and IT folks. Having solid skills in cloud computing is an absolute must-have in today's tech scene. That's why our cloud training programs are tailor-made to suit the needs of IT professionals, leaders, and businesses, no matter where they're at in their cloud journey.</p>
<p>In this <a href="https://digitallearning.vmware.com/learn/learning-plans/81/designing-configuring-and-managing-the-vmware-cloud">online training course</a>, you'll dive deep into the world of VMware Cloud solutions. You'll get to know all the important bits and bobs and learn how to smoothly connect and move stuff to VMware Cloud across different big players in the cloud game. By the end of it all, you'll be a pro at spotting and fixing any pesky cloud issues within your organization and even outside, making you the star player in a super competitive business world.</p>
<p>This learning path sets you up for the VMware Certified Professional – VMware Cloud 2024 exam. You'll get the lowdown on storage, networking, security, and all that jazz, boosting your skills in keeping things running smoothly and dealing with problems in a VMware Cloud setup.</p>
Eric Sloofnospam@example.com (Eric Sloof)2024-02-17T08:35:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37590https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3759Discover the Versatility of ElevenLabs Voice Technology
https://ntpro.nl/blog/archives/3758-Discover-the-Versatility-of-ElevenLabs-Voice-Technology.html
<p><a href="https://elevenlabs.io/">ElevenLabs</a> is a leader in voice technology, offering solutions for diverse voice generation needs. Their portfolio includes readily available high-quality pre-made voices, the innovative Voice Design feature for custom voice creation, and two advanced voice cloning options: Instant Voice Cloning and Professional Voice Cloning.<br />
<br />
These voices, perfect for various applications, are free and of high quality. While primarily trained in English, they can adapt to other languages, potentially with an English accent. With Voice Design, users can customize a voice by selecting gender, age, and accent, including different English accents. While the quality is on par with cloned voices, achieving the desired result might take multiple attempts. Unique voices can be shared in the Voice Library, allowing users to recoup part of their quota.<br />
<br />
This tool enables quick cloning of a voice, relying heavily on the quality of provided audio samples. Optimal audio length is 1-3 minutes, focusing on clarity and consistency rather than quantity. For a more accurate clone, Professional Voice Cloning requires high-quality audio samples, ideally around 3 hours. The same sharing and quota benefits apply as with the Voice Design feature.</p>
<p>This is a speech sample of my biography as featured on the <a href="https://www.ntpro.nl/blog/archives/156-About.html">about page</a>: <a class="block_level opens_window" href="https://ntpro.nl/blog/uploads/ElevenLabs_2024-02-15T10_56_44_Eric_Sloof_pvc_s50_sb75_t2.mp3" title="ElevenLabs_2024-02-15T10_56_44_Eric_Sloof_pvc_s50_sb75_t2.mp3"><!-- s9ymdb:2700 -->ElevenLabs_2024-02-15T10_56_44_Eric_Sloof_pvc_s50_sb75_t2.mp3</a><br />
<br />
In both cloning methods, the clarity and quality of the audio are crucial. Consistent volume and minimal background noise lead to better results. It's also important to remember that cloned voices retain the accent of the original sample when speaking other languages.</p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2024-02-14_at_16.15.55.png"><!-- s9ymdb:2698 --><img alt="" class="serendipity_image_center" height="148" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2024-02-14_at_16.15.55.png" width="303" /></a></p>
<p>ElevenLabs also offers a Python module, allowing the programmatic generation of speech.</p>
Eric Sloofnospam@example.com (Eric Sloof)2024-02-14T14:29:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37580https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3758Exploring the World of Matter: The Future of Smart Home Technology
https://ntpro.nl/blog/archives/3757-Exploring-the-World-of-Matter-The-Future-of-Smart-Home-Technology.html
<p>In the ever-evolving landscape of smart home technology, one term has been steadily gaining momentum: Matter. As a universal standard for connected home devices, Matter promises to revolutionize how our devices communicate, making smart homes more interconnected, secure, and accessible than ever before. In this article, we delve into various aspects of the Matter standard and its implementation across different devices and platforms.<br />
<br />
<a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Matter.png"><!-- s9ymdb:269 --><img alt="" class="serendipity_image_center" height="266" loading="lazy" src="https://ntpro.nl/blog/uploads/Matter.png" width="313" /></a></p>
<p><strong>1. The Heart of Matter: Home Pod Mini and Home Pod 2</strong></p>
<p>The journey into the Matter-enabled world begins with the Home Pod Mini and Home Pod 2. These devices are not just speakers; they are the central hubs that bring the smart home ecosystem to life. With Matter compatibility, these devices ensure seamless integration and interoperability with a wide range of smart home gadgets.</p>
<p><strong>2. Sonoff's Innovation: The SONOFF MINI Extreme</strong></p>
<p>A notable mention in the Matter-compatible device list is the SONOFF MINI Extreme Wi-Fi Smart Switch. This compact device allows users to control their home appliances remotely, adding convenience and efficiency to everyday tasks.</p>
<p><strong>3. Eve: Simplifying Smart Home Automation</strong></p>
<p>Eve's range of Matter-compatible devices further simplifies home automation. Although details on specific products are not outlined, Eve's reputation in the smart home market suggests an exciting range of Matter-enabled devices.</p>
<p><strong>4. Raspberry Pi: The DIY Approach to Matter</strong></p>
<p>The Raspberry Pi offers a more hands-on approach to Matter. From building a Matter home automation service to running the Matter Demo over Wi-Fi, Raspberry Pi serves as a versatile platform for developers and enthusiasts alike. It highlights projects like the Open Thread Border Router, using the Mattertool, and building a Matter Hub using Raspberry Pi.</p>
<p><strong>5. Expanding Horizons with Matter on Ubuntu</strong></p>
<p>Matter's flexibility extends to different operating systems, with Ubuntu emerging as a strong platform for developing Matter-compatible devices. This opens avenues for reducing development costs and encourages innovation in open-source smart home solutions.</p>
<p><strong>6. Node-RED and Home Assistant: User-Friendly Interfaces</strong></p>
<p>Node-RED Matter plugin and Home Assistant's beta for Matter introduce user-friendly interfaces for managing and automating smart home devices. These platforms make it easier for non-technical users to enjoy the benefits of Matter.</p>
<p><strong>7. Silicon Labs and Home Bridge: Expanding the Ecosystem</strong></p>
<p>Silicon Labs' Developer Documentation and products like the SLEXP8023A and WFM200S Wi-Fi Expansion Kit demonstrate the growing hardware support for Matter. Home Bridge's discussion on Raspberry Pi 5 support further indicates the expanding ecosystem.</p>
<p><strong>8. IFTTT and IOS Shortcuts: Simplifying Automation</strong></p>
<p>Finally, IFTTT and IOS Shortcuts represent the bridge between Matter devices and wider automation possibilities, allowing users to create custom scenarios and control their smart homes in unique ways.</p>
<p><strong>Conclusion</strong></p>
<p>Matter is not just a standard; it's a gateway to a more unified, secure, and user-friendly smart home experience. As we witness more devices and platforms embracing Matter, the dream of a truly interconnected smart home is becoming a reality. Stay tuned as this exciting technology continues to evolve, promising a smarter, more connected future for us all.</p>
<p>You can get a copy of the mind-map <a href="https://github.com/esloof/Exploring-the-World-of-Matter-The-Future-of-Smart-Home-Technology/tree/main">here</a>. </p>
<a class="block_level" href="https://ntpro.nl/blog/archives/3757-Exploring-the-World-of-Matter-The-Future-of-Smart-Home-Technology.html#extended">Continue reading "Exploring the World of Matter: The Future of Smart Home Technology"</a>
Eric Sloofnospam@example.com (Eric Sloof)2024-02-07T08:53:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37570https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3757Navigating the World of Artificial Intelligence: A Guide to the Latest AI Technologies
https://ntpro.nl/blog/archives/3756-Navigating-the-World-of-Artificial-Intelligence-A-Guide-to-the-Latest-AI-Technologies.html
<p><strong>NVIDIA's Jetson Platform: Powering the Future</strong><br />
NVIDIA, a leading name in AI and deep learning, has been making strides with its Jetson platform. The Jetson series, known for its powerful GPUs, is a game changer in AI and machine learning applications.</p>
<p><strong>Jetson Nano: The Compact AI Powerhouse</strong><br />
The Jetson Nano is an affordable, yet powerful option. Products like the Kiwi reComputer J3010, featuring the NVIDIA Jetson Orin Nano 4GB module, are perfect for AI projects needing compactness without sacrificing performance. Also notable is the NVIDIA Jetson AGX Xavier Developer Kit, which, when paired with accessories like the Logitech C270 HD Webcam, becomes a robust tool for advanced AI applications.<br />
<br />
The Jetson Nano Developer Kits, such as the 945-13450-0000-100 model, offer enthusiasts and professionals alike the opportunity to dive into AI development. NVIDIA also offers free courses through its Deep Learning Institute, like "Getting Started with AI on Jetson Nano," providing an excellent entry point for AI enthusiasts.</p>
<p><strong>Raspberry Pi: Democratizing AI</strong><br />
The Raspberry Pi has been a revelation in making technology accessible. Particularly, its application in AI through machine learning is remarkable.<br />
<br />
With comprehensive guides like "The Complete Guide to Setting Up Your Raspberry Pi 3 2023 (Mac)," enthusiasts can embark on their AI journey. TensorFlow Lite's integration with Raspberry Pi, especially for object detection, opens up numerous possibilities for AI applications.<br />
<br />
The launch of the Raspberry Pi Camera 3, which can be seamlessly integrated with AI frameworks, further empowers developers to create sophisticated AI-powered applications.<br />
<br />
<a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/AI.png"><!-- s9ymdb:2696 --><img alt="" class="serendipity_image_center" height="231" loading="lazy" src="https://ntpro.nl/blog/uploads/AI.png" width="403" /></a></p>
<p><strong>Other Noteworthy AI Platforms</strong><br />
<br />
<strong>Google Coral: An Emerging Competitor</strong><br />
Google's Coral platform, though not as detailed in the provided structure, is another significant player in the AI hardware space, known for its speed and efficiency in running AI models.</p>
<p><strong>Brainy Pi: A Cost-effective Alternative</strong><br />
For those looking for a more cost-effective alternative to the Jetson Nano, Brainy Pi presents a viable option. It's designed to run AI applications efficiently at lower costs, as detailed in resources like "Brainy Pi: A Jetson Nano Alternative to Run AI Applications at Lower Cost."</p>
<p><strong>Conclusion</strong><br />
AI is rapidly evolving, with platforms like NVIDIA's Jetson, Raspberry Pi, Google Coral, and Brainy Pi leading the charge. Each offers unique capabilities and opportunities for both beginners and seasoned professionals in AI. As AI continues to integrate into various aspects of technology, these platforms will play a pivotal role in shaping the future of AI applications.</p>
<p>Download the <a href="https://github.com/esloof/Navigating-the-World-of-Artificial-Intelligence-A-Guide-to-the-Latest-AI-Technologies">mind-map,</a> including all the links.</p>
<a class="block_level" href="https://ntpro.nl/blog/archives/3756-Navigating-the-World-of-Artificial-Intelligence-A-Guide-to-the-Latest-AI-Technologies.html#extended">Continue reading "Navigating the World of Artificial Intelligence: A Guide to the Latest AI Technologies"</a>
Eric Sloofnospam@example.com (Eric Sloof)2024-02-07T08:19:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37560https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3756 UTM: The Ultimate Virtual Machine Experience for iOS and macOS
https://ntpro.nl/blog/archives/3755-UTM-The-Ultimate-Virtual-Machine-Experience-for-iOS-and-macOS.html
<p>UTM is revolutionizing the way we think about virtual machines on Apple devices. It's a comprehensive system emulator and virtual machine host, specially designed for iOS and macOS. Built on the robust foundation of QEMU, UTM enables users to seamlessly run various operating systems like Windows and Linux on their Mac, iPhone, and iPad.<br />
<a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/windows2x.png"><!-- s9ymdb:2688 --><img alt="" class="serendipity_image_center" height="258" loading="lazy" src="https://ntpro.nl/blog/uploads/windows2x.png" width="320" /></a></p>
<p>UTM is a game-changer for Apple Silicon users. It uses Apple's Hypervisor virtualization framework, allowing ARM64 operating systems to run at speeds almost identical to native performance. For those with Intel Macs, there's the ability to virtualize x86/x64 operating systems. And it doesn’t stop there - UTM also offers lower performance emulation for running x86/x64 on Apple Silicon and ARM64 on Intel. This versatility extends to supporting a range of other emulated processors, including ARM32, MIPS, PPC, and RISC-V, making your Mac a truly universal platform.</p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/ubuntu2x.png"><!-- s9ymdb:2689 --><img alt="" class="serendipity_image_center" height="258" loading="lazy" src="https://ntpro.nl/blog/uploads/ubuntu2x.png" width="320" /></a>UTM isn’t just about the new and shiny; it also breathes life into classic operating systems. Whether it's an old PowerPC, SPARC, or x86_64 system, UTM lets you revisit the digital past. Curious users can explore a gallery showcasing various systems that UTM can emulate.</p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/macos92x.png"><!-- s9ymdb:2690 --><img alt="" class="serendipity_image_center" height="258" loading="lazy" src="https://ntpro.nl/blog/uploads/macos92x.png" width="320" /></a>Apple Silicon Mac users can take virtualization a step further with UTM. It allows the running of multiple instances of macOS, which is particularly beneficial for developers and security-focused users. This feature, however, is exclusive to ARM-based Macs running macOS Monterey or higher.</p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/macos2x.png"><!-- s9ymdb:2691 --><img alt="" class="serendipity_image_center" height="258" loading="lazy" src="https://ntpro.nl/blog/uploads/macos2x.png" width="320" /></a></p>
<p>UTM stands out from other virtualization software due to its design, which is exclusively for macOS and Apple platforms. It seamlessly blends with the Big Sur style, offering a user experience that feels genuinely Mac-like, complete with all the expected privacy and security features.</p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/interface2x.png"><!-- s9ymdb:2692 --><img alt="" class="serendipity_image_center" height="258" loading="lazy" src="https://ntpro.nl/blog/uploads/interface2x.png" width="320" /></a>At its core, UTM harnesses the power of QEMU, a well-established, free, and open-source emulation software. QEMU's complexity is well-known, often deterring users with its array of command-line options. UTM eliminates this barrier, offering the robust features of QEMU without the complexity, making it accessible to a wider range of users.<br />
<br />
<a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/configuration2x.png"><!-- s9ymdb:2693 --></a><a rel="lightbox" href="https://ntpro.nl/blog/uploads/configuration2x.png"><img alt="" class="serendipity_image_center" loading="lazy" src="https://ntpro.nl/blog/uploads/configuration2x.png" style="width: 320px;" /></a>Virtual machines on Apple devices have never been more accessible and versatile, thanks to UTM. Whether you're a developer, an enthusiast, or just someone who needs to run different operating systems on your Apple device, UTM is the tool you've been waiting for. Discover more about UTM and how it can transform your virtual machine experience on Apple devices at <a href="https://getutm.app/" target="_new">https://getutm.app/</a> and <a href="https://mac.getutm.app/" target="_new">https://mac.getutm.app/</a>.</p>
<a class="block_level" href="https://ntpro.nl/blog/archives/3755-UTM-The-Ultimate-Virtual-Machine-Experience-for-iOS-and-macOS.html#extended">Continue reading " UTM: The Ultimate Virtual Machine Experience for iOS and macOS"</a>
Eric Sloofnospam@example.com (Eric Sloof)2024-01-19T04:30:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37550https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3755Streamlining vSphere Operations with ChatGPT
https://ntpro.nl/blog/archives/3754-Streamlining-vSphere-Operations-with-ChatGPT.html
<p>In this article, we'll explore how ChatGPT can automate the generation of a Python script for managing the power states of virtual machines within VMware vCenter. To initiate, you need to prompt ChatGPT to generate a script by posing the question:</p>
<blockquote>
<p>Could you develop a Python script for VMware vCenter to retrieve the virtual machines and allow the user to control their power states? The server details are: host name 'vc.ntpro.local', username 'administrator@ntpro.local', password 'VMware1!' Please ignore certificate errors and use tls.</p>
</blockquote>
<p>ChatGPT's response will be affirmative, recommending the use of the <a href="https://github.com/vmware/pyvmomi">pyvmomi library</a> to interface with VMware vCenter. It will advise on installing the <a href="http://https://github.com/vmware/pyvmomi">pyvmomi library</a> via pip, if not already done so.</p>
<p>You can find the complete Python code through this <a href="https://chat.openai.com/share/f5066096-c39d-487b-b3b2-46b26f39ea11">link</a>. </p>
<p>For Python project management, I prefer the <a href="https://www.jetbrains.com/pycharm/download/">PyCharm Community Edition</a>. The <a href="https://github.com/vmware/pyvmomi">pyvmomi module</a> is crucial for our tasks and can be conveniently installed via the terminal with '<code>pip install pyvmomi'</code>. PyCharm also offers a GUI for handling Python packages.</p>
<p><!-- s9ymdb:2686 --><!-- s9ymdb:2686 --><a rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2024-01-15_at_16.18.11.png"><img alt="" class="serendipity_image_center" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2024-01-15_at_16.18.11.png" style="width: 690px;" /></a>After generating a new Python file, insert the ChatGPT-provided script into PyCharm's editor. Execution may require some adjustments, like updating TLS versions. Should errors arise, ChatGPT is equipped to troubleshoot and provide solutions. Once the refined script is implemented, it successfully retrieves and manages the power states of the virtual machines from vCenter.</p>
<p><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" frameborder="0" height="285" src="https://www.youtube.com/embed/AO2NIGqRmvw?si=dCijaZZyI7VrEi0U" title="YouTube video player" width="500"></iframe></p>
<p>In a subsequent step, I prompted ChatGPT to integrate a basic GUI into the script using the pre-installed <a href="https://docs.python.org/3/library/tkinter.html">TKInter module</a> from Python3. The resulting interface displays a virtual machine list with functional power controls. Despite a minor glitch with the "wait task" during the demonstration, the core functionality was unaffected.<br />
<!-- s9ymdb:2687 --><a rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2024-01-15_at_16.46.35.png"><img alt="" class="serendipity_image_center" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2024-01-15_at_16.46.35.png" style="width: 300px;" /></a>Remember, repeated queries won't yield identical results when soliciting code from ChatGPT. Precision in your inquiries enhances ChatGPT's ability to generate effective code. If your code encounters issues, ChatGPT can help debug and even elucidate the script's workings in depth. Enjoy coding!</p>
<p> </p>
<a class="block_level" href="https://ntpro.nl/blog/archives/3754-Streamlining-vSphere-Operations-with-ChatGPT.html#extended">Continue reading "Streamlining vSphere Operations with ChatGPT"</a>
Eric Sloofnospam@example.com (Eric Sloof)2024-01-15T15:34:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37540https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3754The vSphere Metrics Book - 3rd edition
https://ntpro.nl/blog/archives/3753-The-vSphere-Metrics-Book-3rd-edition.html
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/cover_metrics_.jpeg"><!-- s9ymdb:2683 --><img alt="" class="serendipity_image_right" height="229" loading="lazy" src="https://ntpro.nl/blog/uploads/cover_metrics_.jpeg" width="160" /></a>vSphere comes equipped with a vast array of metrics and properties. A detailed object-by-object and metric-by-metric documentation might seem dry and overly theoretical, potentially leading to disappointment, as it might not directly address real-world problem-solving. Collecting metrics is not the core of your business.</p>
<p><a href="https://www.linkedin.com/feed/update/urn:li:activity:7151361160741638145/">This document</a> is tailored for experienced VMware professionals focused on optimizing and troubleshooting in production environments. It introduces metrics using the Triple See Method, a strategy that aligns metrics with operational management.</p>
<p>This is an advanced-level text, spanning over 300 pages. It's not a quick read, so <a href="https://www.linkedin.com/in/e1ang/">Iwan 'e1' Rahabok</a> suggested settling down with a coffee or your preferred beverage for a thorough and quiet reading session.</p>
<a class="block_level" href="https://ntpro.nl/blog/archives/3753-The-vSphere-Metrics-Book-3rd-edition.html#extended">Continue reading "The vSphere Metrics Book - 3rd edition"</a>
Eric Sloofnospam@example.com (Eric Sloof)2024-01-12T08:20:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37530https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3753Setting Up ESXi ARM on the Raspberry Pi 5
https://ntpro.nl/blog/archives/3752-Setting-Up-ESXi-ARM-on-the-Raspberry-Pi-5.html
<p>In this article, we explore the innovative implementation of VMware's ESXi ARM on the Raspberry Pi 5. The focus is on setting up ESXi ARM on the Raspberry Pi 5, which was initially challenged by a lack of UEFI support. This obstacle is surmounted by Mario Bălănică's development of a Raspberry Pi 5-specific UEFI bios. The setup process is detailed, emphasizing the necessity of an external USB network adapter, and the steps from microSD card preparation to management network configuration.<br />
<br />
In 2018, Pat Gelsinger, then CEO of VMware, made a <a href="https://www.youtube.com/watch?v=UwOhiq5YOJ0&pp=ygUVZXN4aSBvbiByYXNwYmFlZXJ5IHBp">groundbreaking announcement</a> at the VMworld keynote presentation in Las Vegas, revealing the ability to operate ESXi on a Raspberry Pi. Following the presentation, I connected with Alexander Fainkichen, a pivotal contributor to the initiative, for a sit-down interview. As a presenter for VMworld TV at a time when edge computing was surging in popularity, I had the opportunity to delve into the subject. The full interview remains accessible on VMware’s Explore channel.</p>
<p><a class="serendipity_image_link" href="https://www.youtube.com/watch?v=-xyOI2UEP-U"><!-- s9ymdb:2682 --></a><a href="https://www.youtube.com/watch?v=-xyOI2UEP-U&t=0s" target="_blank"><img alt="" class="serendipity_image_right" loading="lazy" src="https://ntpro.nl/blog/uploads/YoutubeTumb.png" style="width: 337px;" /></a></p>
<blockquote>
<p><br />
‘Back at Vegas, people asked us in jest whether the Pi could ever run ESX. We decided it was worth showing that it is possible. ESX on Pi is a promise that VMware understands that the Edge includes extremely low end devices as well. Scaling with the workload and envo is important!’<br />
 </p>
</blockquote>
<p><br />
I recently acquired the cutting-edge Raspberry Pi 5, aiming to set up <a href="https://customerconnect.vmware.com/downloads/get-download?downloadGroup=ESXI-ARM">ESXi ARM</a>. It was tailored for the Raspberry Pi 4, but initial attempts to operate it on the Raspberry Pi 5 were met with a challenge due to the <a href="https://twitter.com/esloof/status/1723400707758330141">absence of UEFI support</a>.<br />
 </p>
<p><a rel="lightbox" href="https://ntpro.nl/blog/uploads/IMG_2072.jpeg"><img alt="" class="serendipity_image_left" loading="lazy" src="https://ntpro.nl/blog/uploads/IMG_2072.jpeg" style="width: 302px;" /></a>However, this scenario changed about a week back when <a href="https://twitter.com/mariobalanica">Mario Bălănică</a>, associated with the <a href="https://github.com/worproject">Windows on Raspberry (WoR) project</a>, unveiled a <a href="https://github.com/worproject/rpi5-uefi">UEFI bios specially designed for the Raspberry Pi 5</a>. This critical development has enabled the device to install ESXi ARM.</p>
<p>Before proceeding, it's important to note a few prerequisites. The Raspberry Pi 5's built-in network adapter is marked an unsupported UEFI peripheral, necessitating the use of an external USB network adapter. For my setup, I chose the <a href="https://www.ntpro.nl/blog/archives/3724-MacBook-Pro-with-the-M2-compatible-USB-C-adapters.html">Maxonar USB C Ethernet Adapter</a>, which offers reliable Gigabit LAN connectivity.<br />
<br />
<!-- s9ymdb:2669 -->The installation procedure is quite direct. Begin by copying the <a href="https://github.com/worproject/rpi5-uefi/releases">UEFI files</a> onto a microSD card formatted to FAT32. Next, transfer the ISO contents of the ESXi ARM installer onto a FAT32-compliant USB drive. Once you power up the Raspberry Pi, the installation should initiate on its own.</p>
<p>During my initial setup, the installation paused at 81%, hindered by the lack of a network adapter for the management network. This hiccup is overcome on the first reboot, where the USB network adapter is recognized, allowing the configuration of the management network thereafter.</p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/install_schema.png"><!-- s9ymdb:2681 --><img alt="" class="serendipity_image_center" height="427" loading="lazy" src="https://ntpro.nl/blog/uploads/install_schema.png" width="440" /></a><br />
The storage setup utilizes a USB interface, connecting through a robust "<a href="https://www.amazon.nl/dp/B09T97Z7DM/ref=pe_28126711_487102941_TE_SCE_dp_1?language=en_GB">UGREEN M.2 Adapter NVMe SSD Hard Drive Enclosure</a>" which houses a swift "<a href="https://www.amazon.nl/dp/B08K79T9G5/ref=pe_28126711_487102941_TE_SCE_dp_1">Samsung SSD 256GB PM991 M.2 2242 42mm PCIe 3.0 x4 NVMe</a>" drive. This USB drive plays a triple role: it's the install-boot media, the destination for the ESXi install, and the local storage for VMFS (Virtual Machine File System). You can leave it inserted after the installation completes. In future enhancements, I plan to integrate the Samsung SSD into my setup more seamlessly, using the <a href="https://pineberrypi.com/products/hat-top-2230-2240-for-rpi5">PineBerry m.2 HATDrive</a>, interfaced via NVMe.</p>
<p>In this video, I've captured the entire installation process from beginning to end, and it takes just 5 minutes to complete. The recording was done using a Video Capture Card, a <a href="https://www.amazon.nl/dp/B097D22ZKM/ref=pe_28126711_487805961_TE_item?th=1">Guermok USB 3.0 HDMI to USB C Audio Capture Card</a>, and QuickTime on a Mac.</p>
<p><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/LKu1NP8cbq0?si=tddRavBv85jotgX9" title="YouTube video player" width="560"></iframe><br />
<br />
Once the installation is finalized, the next step is to start running virtual workloads. My first action was to set up a Photon virtual machine; VMware conveniently provides an <a href="https://packages.vmware.com/photon/5.0/GA/ova/photon-uefi-hw14-5.0-dde71ec57.aarch64.ova">ARM-compatible OVA file</a>. The process is hassle-free, since I'm using Virtual Center to manage the ARM-based ESXi host—just a few clicks and the virtual machine springs to life.</p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2024-01-13_at_07.46.49.png"><!-- s9ymdb:2684 --><img alt="" class="serendipity_image_center" height="370" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2024-01-13_at_07.46.49.png" width="604" /></a><br />
The subsequent hurdle was setting up a Windows environment. Locating an ARM-compatible Windows ISO proved challenging, but after a diligent search, I found one. I uploaded the ISO to the local data store and configured a Windows VM. The installation of Windows was time-consuming, and the initial startup was even more prolonged. Eventually, a blue screen error interrupted the process, which requires further investigation.<br />
<br />
Initially, I operated on a Raspberry Pi 5 with 4 GB of RAM, but soon transitioned to a more robust 8 GB model to accommodate additional VM workloads. Monitoring of the vCenter server is conducted through Aria Operations, which allows me to keep an eye on the ESXi ARM host and virtual machines via comprehensive dashboards. I've also set up Aria Operations for log management, simplifying the troubleshooting process. <!-- s9ymdb:2676 --></p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2024-01-13_at_07.57.25.png"><!-- s9ymdb:2685 --><img alt="" class="serendipity_image_center" height="604" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2024-01-13_at_07.57.25.png" width="756" /></a></p>
<p>In summary, the article showcases the advancements and challenges in setting up and running ESXi ARM on the Raspberry Pi 5. It highlights the technical requirements, the setup process, and the potential for hosting various virtual workloads, along with the importance of continuous monitoring and system optimization. Special thanks to <a href="https://www.linkedin.com/in/jimmy-van-der-mast-3066298/?originalSubdomain=nl">Jimmy van der Mast</a> for providing technical expertise.</p>
<a class="block_level" href="https://ntpro.nl/blog/archives/3752-Setting-Up-ESXi-ARM-on-the-Raspberry-Pi-5.html#extended">Continue reading "Setting Up ESXi ARM on the Raspberry Pi 5"</a>
Eric Sloofnospam@example.com (Eric Sloof)2024-01-12T08:03:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37520https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3752Mastering vCenter Operations with Python: A Script to Manage Your VMs
https://ntpro.nl/blog/archives/3751-Mastering-vCenter-Operations-with-Python-A-Script-to-Manage-Your-VMs.html
<p>In the ever-evolving landscape of virtualization management, efficiency is key. VMware's vCenter Server is the heart of many virtual environments, orchestrating a symphony of VMs with precision. But what if you could take vCenter's capabilities to the next level? Enter Python – the versatile scripting language that speaks directly to vCenter, unlocking a new realm of automation and control.<br />
<br />
Python is more than just a programming language; it's a gateway to automation. With the Python SDK for VMware, known as PyVmomi, you can script complex operations that manage your virtual machines, all within the comfort of Python’s syntax. Whether you’re looking to power on a fleet of VMs, take snapshots before a big update, or gracefully shut down systems for maintenance, Python and PyVmomi make it possible with minimal effort.<br />
<br />
Imagine a script that not only lists all VMs registered in your vCenter but also offers you the control to power them on, suspend, resume, or even take a snapshot. This is not a mere imagination anymore; it's a reality that I've crafted into a Python script. This script is your remote control to vCenter, putting the power of virtual machine management at your fingertips.<br />
<br />
The script starts by connecting to your vCenter server using your credentials. Once authenticated, it fetches a list of all VMs and displays them neatly. Here's where the interactivity comes in – you choose a VM and decide what to do with it. Want to power it on or shut it down? Just a command away. Need to suspend or resume it? A simple input does the job. Looking to create a snapshot? It’s just as easy.</p>
<pre>
<code class="language-python">from pyVim.connect import SmartConnect, Disconnect
from pyVmomi import vim
import ssl
import atexit
# vCenter Server details
vc_server = 'vc.ntpro.local'
username = 'administrator@ntpro.local'
password = 'VMware1!'
# Disable SSL certificate verification (for demo purposes only, not recommended for production)
context = ssl._create_unverified_context()
# Function to connect to vCenter
def connect_to_vcenter(server, user, password):
si = SmartConnect(host=server, user=user, pwd=password, sslContext=context)
atexit.register(Disconnect, si)
return si
# Function to get all VMs
def get_all_vms(si):
content = si.RetrieveContent()
container = content.viewManager.CreateContainerView(content.rootFolder, [vim.VirtualMachine], True)
return container.view
# Power operations for the VM
def power_on_vm(vm):
if vm.runtime.powerState != vim.VirtualMachinePowerState.poweredOn:
task = vm.PowerOnVM_Task()
wait_for_task(task)
print(f"VM '{vm.name}' is powered on.")
else:
print(f"VM '{vm.name}' is already powered on.")
def power_off_vm(vm):
if vm.runtime.powerState != vim.VirtualMachinePowerState.poweredOff:
task = vm.PowerOffVM_Task()
wait_for_task(task)
print(f"VM '{vm.name}' is powered off.")
else:
print(f"VM '{vm.name}' is already powered off.")
def suspend_vm(vm):
if vm.runtime.powerState == vim.VirtualMachinePowerState.poweredOn:
task = vm.SuspendVM_Task()
wait_for_task(task)
print(f"VM '{vm.name}' is suspended.")
else:
print(f"VM '{vm.name}' cannot be suspended because it is not powered on.")
def resume_vm(vm):
if vm.runtime.powerState == vim.VirtualMachinePowerState.suspended:
task = vm.PowerOnVM_Task()
wait_for_task(task)
print(f"VM '{vm.name}' is resumed.")
else:
print(f"VM '{vm.name}' is not suspended.")
def create_snapshot(vm):
task = vm.CreateSnapshot_Task(name='Snapshot', description='Created by script', memory=False, quiesce=False)
wait_for_task(task)
print(f"Snapshot for VM '{vm.name}' created.")
# Wait for vCenter task to complete
def wait_for_task(task):
task_done = False
while not task_done:
if task.info.state == vim.TaskInfo.State.success:
return
if task.info.state == vim.TaskInfo.State.error:
print(f"Task failed: {task.info.error}")
raise Exception("Task failed")
# Main script logic
if __name__ == "__main__":
si = connect_to_vcenter(vc_server, username, password)
vms = get_all_vms(si)
vms_dict = {vm.name: vm for vm in vms}
print("List of VMs:")
for vm_name in vms_dict.keys():
print(vm_name)
selected_vm_name = input("Enter the name of the VM you wish to manage: ")
vm = vms_dict.get(selected_vm_name)
if vm:
print(f"Selected VM: {selected_vm_name}")
action = input("Choose an action: (on) Power On, (off) Power Off, (suspend) Suspend, (resume) Resume, (snapshot) Create Snapshot: ").lower().strip()
if action == 'on':
power_on_vm(vm)
elif action == 'off':
power_off_vm(vm)
elif action == 'suspend':
suspend_vm(vm)
elif action == 'resume':
resume_vm(vm)
elif action == 'snapshot':
create_snapshot(vm)
else:
print("Invalid action selected.")
else:
print(f"VM '{selected_vm_name}' not found.")
</code></pre>
<p>The script is designed with safety and ease of use in mind, leveraging Python’s clear syntax and PyVmomi’s powerful bindings to the vSphere API. It’s a tool that can be expanded, customized, and integrated into larger workflows or dashboards. I'm hosting the source code, along with some screenshots on my <a href="https://github.com/esloof/Mastering-vCenter-Operations-with-Python-A-Script-to-Manage-Your-VMs">GitHub page</a>.</p>
<a class="block_level" href="https://ntpro.nl/blog/archives/3751-Mastering-vCenter-Operations-with-Python-A-Script-to-Manage-Your-VMs.html#extended">Continue reading "Mastering vCenter Operations with Python: A Script to Manage Your VMs"</a>
Eric Sloofnospam@example.com (Eric Sloof)2024-01-09T16:09:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37510https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3751Harvesting Data: Python's Gateway to Aria Operations Metrics
https://ntpro.nl/blog/archives/3746-Harvesting-Data-Pythons-Gateway-to-Aria-Operations-Metrics.html
<p>Unlock the power of Python to seamlessly gather and harness data from Aria Operations (vROps). This blog post introduces a Python script that connects to vROps, efficiently authenticating to obtain a secure token. This token is the golden key, allowing the script to pull detailed metrics for a virtual machine named 'Raspberry'.</p>
<pre>
<code class="language-python">import requests
import json
# Replace these with your vROps details
vrops_host = 'https://ariaops.ntpro.local'
username = 'admin'
password = 'VMware1!'
# Endpoints
auth_url = f'{vrops_host}/suite-api/api/auth/token/acquire'
vm_search_url = f'{vrops_host}/suite-api/api/resources'
metrics_url_template = f'{vrops_host}/suite-api/api/resources/{{}}/stats'
# Authenticate and Get Token
headers = {'Content-Type': 'application/json', 'Accept': 'application/json'}
payload = {'username': username, 'password': password}
response = requests.post(auth_url, headers=headers, data=json.dumps(payload), verify=False)
token = response.json().get('token')
if not token:
raise Exception("Authentication failed")
# Update headers with the token
headers['Authorization'] = f'vRealizeOpsToken {token}'
# Function to get the ID of a VM by its name
def get_vm_id(vm_name):
vm_url = f'{vrops_host}/suite-api/api/resources'
response = requests.get(vm_url, headers=headers, verify=False)
if response.status_code == 200:
resources = response.json()['resourceList']
for resource in resources:
if resource['resourceKey']['name'] == vm_name:
return resource['identifier']
return None
# Function to get metrics for a VM by its ID
def get_vm_metrics(vm_id):
metrics_url = f'{vrops_host}/suite-api/api/resources/{vm_id}/stats'
response = requests.get(metrics_url, headers=headers, verify=False)
if response.status_code == 200:
return response.json()
return None
# Main script execution
vm_id = get_vm_id('raspberry')
if vm_id:
vm_metrics = get_vm_metrics(vm_id)
if vm_metrics:
print("Metrics for VM 'raspberry':")
print(json.dumps(vm_metrics, indent=4))
else:
print("Failed to retrieve metrics for VM 'raspberry'")
else:
print("VM 'raspberry' not found")
</code></pre>
<p>Through this script, you can effortlessly access the Aria Ops REST API, which is designed to safeguard and validate your data retrieval missions. Once authenticated, you can harvest a rich dataset, which can then be woven into your custom solutions or operational dashboards. By leveraging this script, raw data can be transformed into actionable insights, enhancing virtual machine monitoring and management.</p>
<p>The source code, complete with an example of the output and some screenshots, is hosted on my <a href="https://github.com/esloof/Python-s-Gateway-to-vRealize-Operations-Metrics">GitHub page</a>.</p>
<a class="block_level" href="https://ntpro.nl/blog/archives/3746-Harvesting-Data-Pythons-Gateway-to-Aria-Operations-Metrics.html#extended">Continue reading "Harvesting Data: Python's Gateway to Aria Operations Metrics"</a>
Eric Sloofnospam@example.com (Eric Sloof)2024-01-09T14:29:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37460https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3746TensorFlow Management Pack For VMware Aria Operations
https://ntpro.nl/blog/archives/3743-TensorFlow-Management-Pack-For-VMware-Aria-Operations.html
<p>I've successfully connected a Raspberry Pi 5 running TensorFlow to VMware Aria Operations, and I'm excited to share the simplicity of the process. The new Management Pack Builder from VMware transforms the creation of custom management packs into a straightforward task. This intuitive tool, which requires no coding skills, invites us to extend the capabilities of our monitoring systems with ease. Join me as we explore how this setup can revolutionize your operational management, making it more efficient and responsive to your needs.</p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-12-23_at_15.02.35.png"><!-- s9ymdb:2665 --><img alt="" class="serendipity_image_center" height="408" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-12-23_at_15.02.35.png" width="420" /></a></p>
<p>The VMware Aria Operations Management Pack Builder is a self-contained tool designed to facilitate the development of bespoke management packs for VMware Aria Operations. It offers a user-friendly, code-free approach to importing data from external APIs. This tool allows the creation of new resources or the enhancement of existing VMware and third-party resources by adding new data, establishing relationships, and integrating events.</p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Street.png"><!-- s9ymdb:2666 --><img alt="" class="serendipity_image_center" height="408" loading="lazy" src="https://ntpro.nl/blog/uploads/Street.png" width="408" /></a></p>
<p>TensorFlow, renowned for its versatility in machine learning, is particularly effective for object detection projects on Raspberry Pi. This lightweight platform seamlessly integrates with the modest hardware of the Raspberry Pi, making it ideal for real-time object detection tasks. By utilizing a camera module with TensorFlow, users can develop efficient, on-device models capable of identifying and categorizing objects in the camera's field of view.<br />
<br />
<a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-12-23_at_14.46.46.png"><!-- s9ymdb:2663 --><img alt="" class="serendipity_image_center" height="183" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-12-23_at_14.46.46.png" width="450" /></a><br />
The Raspberry Pi 5 uses a Python script tailored for object detection, processing images from its camera into structured JSON data. Additionally, it operates a web server that presents a REST API to Aria Operations, enabling the collection and statistical analysis of object detection data processed by TensorFlow.</p>
<pre>
<code class="language-json">{"person": 1, "bicycle": 0, "car": 17, "motorcycle": 0, "airplane": 0, "bus": 0, "train": 0, "truck": 1, "boat": 0, "traffic": 0, "fire": 0, "stop": 0, "parking": 0, "bench": 0, "bird": 0, "cat": 0, "dog": 0, "horse": 0, "sheep": 0, "cow": 0, "elephant": 0, "bear": 0, "zebra": 0, "giraffe": 0, "backpack": 0, "umbrella": 0, "handbag": 0, "tie": 0, "suitcase": 0, "frisbee": 0, "skis": 0, "snowboard": 0, "sports": 0, "kite": 0, "baseball": 0, "skateboard": 0, "surfboard": 0, "tennis": 0, "bottle": 0, "wine": 0, "cup": 0, "fork": 0, "knife": 0, "spoon": 0, "bowl": 0, "banana": 0, "apple": 0, "sandwich": 0, "orange": 0, "broccoli": 0, "carrot": 0, "hot": 0, "pizza": 0, "donut": 0, "cake": 0, "chair": 0, "couch": 0, "potted": 0, "bed": 0, "dining": 0, "toilet": 0, "tv": 0, "laptop": 0, "mouse": 0, "remote": 0, "keyboard": 0, "cell": 0, "microwave": 0, "oven": 0, "toaster": 0, "sink": 0, "refrigerator": 0, "book": 0, "clock": 0, "vase": 0, "scissors": 0, "teddy": 0, "hair": 0, "toothbrush": 0}</code></pre>
<p>The package file and the corresponding Python code can be accessed and downloaded from my <a href="https://github.com/esloof/TensorFlow-Management-Pack-For-VMware-Aria-Operations">GitHub repository</a>.  You can find guidance on setting up TensorFlow on a Raspberry Pi in a <a href="https://www.ntpro.nl/blog/archives/3731-TensorFlow-Lite-on-a-Raspberry-Pi-5-with-Camera-Module-3.html">previous article</a> I have authored.</p>
<a class="block_level" href="https://ntpro.nl/blog/archives/3743-TensorFlow-Management-Pack-For-VMware-Aria-Operations.html#extended">Continue reading "TensorFlow Management Pack For VMware Aria Operations"</a>
Eric Sloofnospam@example.com (Eric Sloof)2023-12-23T14:37:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37430https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3743VMware Aria Operations API – Postman Collection
https://ntpro.nl/blog/archives/3741-VMware-Aria-Operations-API-Postman-Collection.html
<p>In this article, I’ll describe how to connect to the REST API of VMware Aria Operations. I’ll also demonstrate how to use the Swagger UI to construct API entries in Postman.</p>
<p>The initial access to the AriaOps API is based on authentication with a username, password and authentication source provided in a JSON body. Don’t try to do this with basic authentication, because it will fail. Simply construct a POST call with a JSON body, and get the ops:token. This token is needed for any subsequent REST calls against AriaOps.</p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-12-19_at_06.04.59.png"><!-- s9ymdb:2657 --><!-- s9ymdb:2657 --><img alt="" class="serendipity_image_center" height="163" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-12-19_at_06.04.59.png" width="284" /></a>After receiving a 200 (OK) response. The ops:token has successfully been retrieved. It will expire after 6 hours. Any subsequent requests must include this token.<br />
<br />
<a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-12-19_at_06.12.43.png"><!-- s9ymdb:2658 --><img alt="" class="serendipity_image_center" height="129" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-12-19_at_06.12.43.png" width="280" /></a></p>
<p>To construct new API calls, you can use either the <a href="https://docs.vmware.com/en/VMware-Aria-Operations/8.14/API-Programming-Operations.pdf">API-Programming-Operations Guide</a> or the <a href="https://aria-ops-ip/suite-api/doc/swagger-ui.html">Swagger UI</a>. In the Swagger UI, it is fairly easy to test API calls with the “Try it out” feature.</p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-12-19_at_06.25.18.png"><!-- s9ymdb:2659 --><img alt="" class="serendipity_image_center" height="264" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-12-19_at_06.25.18.png" width="232" /></a></p>
<p>This also includes a valid ops:token in the test request. You can copy the Curl request from Swagger and paste it into a new request in Postman. This automatically translates the curl request into a valid REST API call, and fills all the parameters and creates a valid JSON body.<br />
<br />
<a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-12-19_at_06.30.07.png"><img alt="" class="serendipity_image_center" height="120" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-12-19_at_06.30.07.png" width="274" /></a></p>
<p>I've created some sample requests and exported the <a href="https://github.com/esloof/VMware-Aria-Operations-API-Postman-Collection">Postman collection</a> to GitHub. Any comments or suggestions on X please. </p>
<a class="block_level" href="https://ntpro.nl/blog/archives/3741-VMware-Aria-Operations-API-Postman-Collection.html#extended">Continue reading "VMware Aria Operations API – Postman Collection"</a>
Eric Sloofnospam@example.com (Eric Sloof)2023-12-19T06:09:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37410https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3741Integrating the Raspberry Pi Pico with Aria Operations - Introduction
https://ntpro.nl/blog/archives/3735-Integrating-the-Raspberry-Pi-Pico-with-Aria-Operations-Introduction.html
<p>In this series of articles, I’ll describe how to build a management pack that integrates a <a href="https://github.com/esloof/Integrating-the-Raspberry-Pi-Pico-with-Aria-Operations-/tree/main/Photos">Raspberry Pi Pico W</a> with Aria Operations. For the creation of the management pack, I’ll use the <a href="https://docs.vmware.com/en/VMware-Aria-Operations-for-Integrations/1.1/VMware-Aria-Operations-Management-Pack-Builder/GUID-1C363DCE-5C4A-473D-A519-A55E0371A9F2.html">VMware Aria Operations Management Pack Builder</a>. This appliance automates the complete process of programming the RP2040 input sensors via a REST API into a PAK file. Communications between Aria Operations and the Pi Pico will be done wireless using the <a href="https://forums.raspberrypi.com/viewtopic.php?t=340076">Microdot framework</a>. </p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/WhiteBoard_Aria_Operations_RaspBerry_Pi_Pico_Integration.png"><!-- s9ymdb:2653 --><img alt="" class="serendipity_image_center" height="200" loading="lazy" src="https://ntpro.nl/blog/uploads/WhiteBoard_Aria_Operations_RaspBerry_Pi_Pico_Integration.png" width="500" /></a></p>
<p>Creating a management pack for Aria Operations involves so many steps that I’ve decided to split this project into multiple blog articles. I’m using <a href="https://simplemind.eu/">SimpleMind</a> as a <a href="https://github.com/esloof/Integrating-the-Raspberry-Pi-Pico-with-Aria-Operations-/tree/main/MindMap">mind map tool</a> to keep track of all the different components. <a href="https://github.com/esloof/Integrating-the-Raspberry-Pi-Pico-with-Aria-Operations-/tree/main/Python%20Source%20Code">All the source code</a> will be hosted on GitHub. Please enhance or adjust this code to your own needs by forking or copying the code.</p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Connecting_a_Raspberry_Pi_Pico_to_Aria_Operations.png"><!-- s9ymdb:2654 --><img alt="" class="serendipity_image_center" height="233" loading="lazy" src="https://ntpro.nl/blog/uploads/Connecting_a_Raspberry_Pi_Pico_to_Aria_Operations.png" width="273" /></a></p>
<p>Before I started writing these articles, I’ve built a <a href="https://github.com/esloof/Integrating-the-Raspberry-Pi-Pico-with-Aria-Operations-/tree/main/Pak%20Files">working prototype</a>. The reason I’ve built this prototype was to see if it's even possible to get everything to work. The prototype was also used during a recent training course delivery of the VMware vRealize Operations: Advanced Use Cases [v8.x].</p>
<p><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/cV_7iaXpYC4?si=7ImbwLIJwIgCJA_A" title="YouTube video player" width="560"></iframe></p>
<p>The beta version of the Python code, including a working PAK file and some <a href="https://github.com/esloof/Integrating-the-Raspberry-Pi-Pico-with-Aria-Operations-/tree/main/ScreenShots">screenshots</a>, are already available on <a href="https://github.com/esloof/Integrating-the-Raspberry-Pi-Pico-with-Aria-Operations-">GitHub</a>. In upcoming articles, I’ll enhance the code and create new versions. Currently, the roadmap contains an API with authentication, dashboards, events, alerts, etc. Feel free to bring up any suggestions on <a href="https://x.com/esloof/status/1734117338973163788?s=20">my X channel</a> or in the comments on GitHub.</p>
<a class="block_level" href="https://ntpro.nl/blog/archives/3735-Integrating-the-Raspberry-Pi-Pico-with-Aria-Operations-Introduction.html#extended">Continue reading "Integrating the Raspberry Pi Pico with Aria Operations - Introduction"</a>
Eric Sloofnospam@example.com (Eric Sloof)2023-12-11T07:34:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37350https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3735vSAN Adaptive Quorum Control in a stretched cluster
https://ntpro.nl/blog/archives/3734-vSAN-Adaptive-Quorum-Control-in-a-stretched-cluster.html
<p><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/nX0OQDYuAP8?si=lfeOhIDQ2zarSFOr" title="YouTube video player" width="560"></iframe></p>
<p><span style="font-size:12pt"><span style="font-family:Calibri,sans-serif">This video explains the voting <span lang="EN-US" style="color:black">magnetism used</span> by vSAN during a site and a subsequent witness failure. Adaptive quorum control assigns more votes to the surviving site to handle a subsequent failure of the witness site. By <span lang="EN-US" style="color:black">assigning</span> 3 votes to the components on the <span lang="EN-US" style="color:black">surviving</span> site, there’s still a majority. Even when an <span lang="EN-US" style="color:black">additional</span> host on the preferred site is lost, <span lang="EN-US" style="color:black">there</span> are still <span lang="EN-US" style="color:black">enough</span> votes to get a majority, so the <span lang="EN-US" style="color:black">virtual</span> machine is still functioning. </span></span></p>
<p>The <a href="https://app.excalidraw.com/">Excalidraw</a> source file is available on <a href="https://github.com/esloof/vSAN-Adaptive-Quorum-Control-in-a-stretched-cluster">GitHub</a>.</p>
<a class="block_level" href="https://ntpro.nl/blog/archives/3734-vSAN-Adaptive-Quorum-Control-in-a-stretched-cluster.html#extended">Continue reading "vSAN Adaptive Quorum Control in a stretched cluster"</a>
Eric Sloofnospam@example.com (Eric Sloof)2023-11-26T11:33:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37340https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3734TensorFlow Lite on a Raspberry Pi 5 with Camera Module 3
https://ntpro.nl/blog/archives/3731-TensorFlow-Lite-on-a-Raspberry-Pi-5-with-Camera-Module-3.html
<p>It’s <a href="https://x.com/esloof/status/1723400707758330141?s=20">unlikely</a> my new shiny Raspberry Pi 5 will run <a href="https://customerconnect.vmware.com/downloads/get-download?downloadGroup=ESXI-ARM">ESXi for ARM</a> in <a href="https://github.com/pftf/RPi4/issues/243">the short term</a>, so I decided to use it for other projects. One of these projects is TensorFlow. Artificial intelligence and machine learning are hot topics these days, and TensorFlow Lite is the ideal way to familiarize yourself with these groundbreaking techniques.<br />
<br />
Setting up TensorFlow Lite on a Raspberry Pi 5 isn’t that easy if you start from scratch. Many online examples are based on older models, which don’t use the Raspberry Pi 5 Compatible OS 'Bookworm'. During my search on Google, I stumbled upon a <a href="https://www.youtube.com/watch?v=YViW_C1nolw">video</a> from FREEDOM TECH. This video is based on the Camera Module 2, but it’s one of the rare examples using Bookworm.</p>
<p>In the first part of this video, you will get an explanation of how to install all the opencv-python. OpenCV is a Python library that allows you to perform image processing and computer vision tasks. The installation of opencv results in an error. Before installing opencv-python, you should first remove the externally managed file to step away from the use of environments. </p>
<pre>
<code class="language-bash">sudo rm /usr/lib/python3.11/EXTERNALLY-MANAGED
sudo pip3 install opencv-python
</code></pre>
<p>Now, we're ready to install TensorFlow by using the following command:</p>
<pre>
<code class="language-bash">sudo pip3 install tensorflow</code></pre>
<p>With the next command, we’re installing VCZone. This is a computer vision package that makes it easy to run image processing and AI functions.</p>
<pre>
<code class="language-bash">sudo pip3 install cvzone</code></pre>
<p>The installation is complete now. There’s one additional step you need to perform. When you copy the <a href="https://github.com/esloof/rpi5-bookworm-tflite/tree/main">rpi5-bookworm-tflite</a> git hub repository to your Raspberry Pi 5, you have to change the path in the tflitetestrpicamera.py file and point it to the correct location of the labels and TensorFlow file.</p>
<pre>
<code class="language-bash">model_path='/home/esloof/efficientdet_lite0.tflite'
label_path='/home/esloof/labels.txt'</code></pre>
<p>The <a href="https://github.com/freedomwebtech/rpi4-bookworm-tflite">initial version</a> of the tflitetestrpicamera.py didn’t have any support autofocus for the Camera Module 3. After reading a great article about “<a href="https://www.tomshardware.com/how-to/raspberry-pi-camera-module-3-python-picamera-2">How To Use Raspberry Pi Camera Module 3 with Python Code</a>” by <a href="https://www.twitter.com/@biglesp">Les Pounder</a> I’ve added a few extra lines of code that import the libcamere for controlling the camera, and I’ve also enabled autofocus. </p>
<a class="block_level" href="https://ntpro.nl/blog/archives/3731-TensorFlow-Lite-on-a-Raspberry-Pi-5-with-Camera-Module-3.html#extended">Continue reading "TensorFlow Lite on a Raspberry Pi 5 with Camera Module 3"</a>
Eric Sloofnospam@example.com (Eric Sloof)2023-11-24T10:43:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37310https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3731Raspberry Pi 5 Remote Access
https://ntpro.nl/blog/archives/3729-Raspberry-Pi-5-Remote-Access.html
<p>This article contains a quick heads-up on how to connect a desktop client to the new Raspberry Pi 5. The Wayland-based environment on the Raspbarry 5 doesn't support X11, so you <a href="https://forums.raspberrypi.com/viewtopic.php?t=357085">can't use RealVNC for now</a>. Jack over at RealVNC has <a href="https://help.realvnc.com/hc/en-us/articles/14110635000221-Raspberry-Pi-5-Bookworm-and-RealVNC-Connect">announced</a> they are working on a new version to be released mid 2024. In the meantime, there is another way to connect to the desktop remotely, without installing any additional software in the Raspberry Pi 5. <a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.05.51.png"><!-- s9ymdb:2637 --><img alt="" class="serendipity_image_center" height="370" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.05.51.png" width="568" /></a>First, you have to enable VNC (<a href="https://github.com/any1/wayvnc">WayVNC</a>) on the Raspberry Pi 5 by selecting the radio button on the configuration screen. Then download a copy of <a href="https://tigervnc.org/">TigerVNC</a> and install it on your desktop/laptop. After starting the TigerVNC client, you have to specify the hostname or IP address of your Raspberry Pi 5 and click 'Connect". Accept the certificate warning by clicking 'Yes' twice. Specify your username and password, and you are connected. TigerVNC only supports one active connection by default. You can use F8 to show the context menu and connection info.</p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.18.30.png"><!-- s9ymdb:2638 --></a><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_09.57.43.png"><!-- s9ymdb:2642 --><img alt="" class="serendipity_image_left" height="60" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_09.57.43.serendipityThumb.png" width="110" /></a><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.18.30.png"><img alt="" class="serendipity_image_left" height="59" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.18.30.serendipityThumb.png" width="110" /></a><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.21.09.png"><!-- s9ymdb:2639 --><img alt="" class="serendipity_image_left" height="34" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.21.09.serendipityThumb.png" width="110" /></a><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.23.23.png"><!-- s9ymdb:2640 --><img alt="" class="serendipity_image_left" height="70" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.23.23.serendipityThumb.png" width="110" /></a><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.26.04.png"><!-- s9ymdb:2641 --><img alt="" class="serendipity_image_left" height="68" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.26.04.serendipityThumb.png" width="110" /></a></p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.51.40.png"><!-- s9ymdb:2644 --><img alt="" class="serendipity_image_left" height="73" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.51.40.serendipityThumb.png" width="110" /></a></p>
<p> </p>
<p> </p>
<p> </p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.50.14.png"><!-- s9ymdb:2645 --><img alt="" class="serendipity_image_left" height="110" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.50.14.serendipityThumb.png" width="102" /></a><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.49.55.png"><!-- s9ymdb:2646 --><img alt="" class="serendipity_image_left" height="110" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.49.55.serendipityThumb.png" width="103" /></a><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.49.38.png"><!-- s9ymdb:2647 --><img alt="" class="serendipity_image_left" height="110" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.49.38.serendipityThumb.png" width="103" /></a><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.49.31.png"><!-- s9ymdb:2648 --><img alt="" class="serendipity_image_left" height="110" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.49.31.serendipityThumb.png" width="102" /></a><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.49.22.png"><!-- s9ymdb:2649 --><img alt="" class="serendipity_image_left" height="110" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.49.22.serendipityThumb.png" width="103" /></a></p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_11.02.33.png"><!-- s9ymdb:2650 --><img alt="" class="serendipity_image_left" height="45" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_11.02.33.serendipityThumb.png" width="110" /></a></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>Comments on <em><a href="https://x.com/esloof/status/1723279596877991979?s=20">X</a></em> please.<br />
<a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.49.55.png"><!-- s9ymdb:2646 --></a><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.49.38.png"><!-- s9ymdb:2647 --></a><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.49.31.png"><!-- s9ymdb:2648 --></a><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-11_at_10.49.22.png"><!-- s9ymdb:2649 --></a></p>
Eric Sloofnospam@example.com (Eric Sloof)2023-11-11T09:39:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37290https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3729Raspberry Pi Pico LED Control by ChatGPT
https://ntpro.nl/blog/archives/3728-Raspberry-Pi-Pico-LED-Control-by-ChatGPT.html
<p>I’m still discovering the amazing capabilities of my <a href="https://www.raspberrypi.com/products/raspberry-pi-pico/">Raspberry Pico W</a> while waiting for the shipment of my future ESXi on a <a href="https://www.raspberrypi.com/news/introducing-raspberry-pi-5/">Raspberry Pi 5</a>. The Pico W has a Wi-Fi adapter, which can be used to host a webpage. It also has an onboard led, which can be switched on and off. It would be great if I could toggle the led via a webpage. Think about the possibilities, like garage door openers or anything you want to control remotely. <br />
<br />
<a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/F89BnhQXAAAAsb4.jpeg"><!-- s9ymdb:2636 --><img alt="" class="serendipity_image_center" height="300" loading="lazy" src="https://ntpro.nl/blog/uploads/F89BnhQXAAAAsb4.jpeg" width="400" /></a></p>
<p>When I wrote my earlier article about controlling the <a href="https://www.ntpro.nl/blog/archives/3725-Controlling-the-Elgato-Key-Light-Air-with-a-Raspberry-Pi-Pico.html">Elgato Key Light Air</a>, I’ve spent some reasonable time on coding. My Python skills are still very minimal, and I’m following an online training course to get up to speed. But, in the meantime, who’s going to write my code? Maybe ChatGPT can do the trick. The last time I used it was during the “VMware {code} Lab: Learning to Code Using ChatGPT API Interface” workshop hosted by <a href="https://twitter.com/ericnipro">Eric Nielsen</a> at the VMware Explore in Las Vegas. This workshop was a great introduction to the possibilities of ChatGPT. So, my question to ChatGPT was simple:</p>
<p><strong>Are you familiar with the Raspberry Pi Pico?</strong></p>
<p><strong>And ChatGPT answered:</strong></p>
<p><em>Yes, I'm familiar with the Raspberry Pi Pico. It's a microcontroller board developed by the Raspberry Pi Foundation. Unlike the traditional Raspberry Pi boards, which are single-board computers, the Raspberry Pi Pico is a microcontroller board based on the RP2040 chip, designed for embedded and low-level programming tasks.</em></p>
<p><em>The Pico is quite popular for its affordability, ease of use, and versatility, making it suitable for a wide range of projects, including embedded systems, IoT (Internet of Things) devices, and various DIY electronics projects. It's notable for its RP2040 chip, which features dual ARM Cortex-M0+ cores and provides a variety of I/O options, making it a flexible choice for programming and hardware interfacing.</em></p>
<p><strong>The next question was, Are you familiar with MicroPython?</strong></p>
<p><strong>And ChatGPT answered:</strong></p>
<p><em>Absolutely! MicroPython is a software implementation of the Python programming language optimized to run on microcontrollers and embedded systems. It's designed to be lean and efficient while providing a Python 3 programming environment for microcontroller boards.<br />
MicroPython offers a subset of the Python language, adapted to the constraints and capabilities of microcontrollers. It allows developers to write Python code that can directly interact with hardware, making it popular for IoT, robotics, and embedded systems projects. Its simplicity and ease of use, along with its rich library support, make it a preferred choice for those familiar with Python programming who want to work with microcontrollers.<br />
The Raspberry Pi Pico, for instance, can be programmed using MicroPython among other programming languages, offering an accessible and beginner-friendly approach for handling hardware tasks.</em></p>
<p>Great, let’s see if I can formulate a good question that can be used by ChatGPT to write the correct code for hosting a web server that toggles the led. So, the question is: <strong>Can you write a Micropython program for Raspberry Pi Pico W, which hosts a web server and offers a page that switches on and off the onboard led?</strong></p>
<p><strong>The answer was stunning:</strong></p>
<p><em>To create a MicroPython program for the Raspberry Pi Pico, which hosts a web server and allows you to toggle the onboard LED via a webpage, you'll need to use the Pico's networking capabilities and the MicroPython's ure and network modules. Here is an example code that achieves this functionality:</em></p>
<p><em>Here are the steps to use this code:</em></p>
<ol>
<li><em>Replace 'YOUR_WIFI_SSID' and 'YOUR_WIFI_PASSWORD' with your actual Wi-Fi network's SSID and password.</em></li>
<li><em>Load this code onto your Raspberry Pi Pico running MicroPython. You can use Thonny or any other MicroPython editor.</em></li>
<li><em>After running the code, the Pico will create a web server. Access the Pico's IP address in a web browser on a device connected to the same network. The web page allows you to toggle the onboard LED on and off.</em></li>
</ol>
<pre>
<code>import network
import machine
import usocket as socket
led_pin = machine.Pin(25, machine.Pin.OUT)
html = """<!DOCTYPE html>
<html>
<head> <title>Raspberry Pi Pico LED Control</title> </head>
<body>
LED Control:
<form method="get" action="toggle">
<button type="submit">Toggle LED</button>
</form>
</body>
</html>
"""
# Set up WiFi connection
wlan = network.WLAN(network.STA_IF)
wlan.active(True) # Activate the wireless interface
wlan.connect('YOUR_WIFI_SSID', 'YOUR_WIFI_PASSWORD') # Replace with your SSID and password
# Initialize socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('', 80))
s.listen(5)
while True:
conn, addr = s.accept()
print("Got a connection from %s" % str(addr))
request = conn.recv(1024)
request = str(request)
print("Content = %s" % request)
led_on = request.find('/toggle')
if led_on == 6:
led_pin.value(not led_pin.value()) # Toggle LED
response = html
conn.send('HTTP/1.1 200 OK\n')
conn.send('Content-Type: text/html\n')
conn.send('Connection: close\n\n')
conn.sendall(response)
conn.close()
</code></pre>
<p><em>Note: This code sets up a basic web server with minimal error handling. In a production environment, you might want to add error handling and security measures to make the system more robust and secure.</em></p>
<p>After adding a few extra lines of code to receive the IP address, I’ve copied and pasted the code in Thonny and hit the run button… </p>
<pre>
<code class="language-python">while wlan.isconnected() == False:
print('Waiting for connection...')
sleep(1)
print(wlan.ifconfig())</code></pre>
<p>I must admit I was expecting an error code, but I got the IP address and visited the webpage. After clicking the button, no Toggling LED. </p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/IMG_1754.PNG"><!-- s9ymdb:2629 --></a><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-08_at_06.12.34.png"><!-- s9ymdb:2630 --><img alt="" class="serendipity_image_center" height="208" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-11-08_at_06.12.34.png" width="388" /></a>Thonny's Shell:</p>
<p>Got a connection from ('192.168.178.122', 52756)<br />
Content = b'GET /favicon.ico HTTP/1.1\r\nHost: 192.168.178.46\r\nConnection: keep-alive\r\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36\r\nAccept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8\r\nReferer: http://192.168.178.46/toggle?\r\nAccept-Encoding: gzip, deflate\r\nAccept-Language: en-US,en;q=0.9,nl;q=0.8\r\n\r\n'</p>
<p>I discovered ChatGPT was using the led address of a Pico. The led address of the Pico W model is different. </p>
<pre>
<code class="language-python">led_pin = machine.Pin("LED", machine.Pin.OUT)</code></pre>
<p>Instead of:</p>
<pre>
<code>led_pin = machine.Pin(25, machine.Pin.OUT)</code></pre>
<p>So, I changed the address and gave it another try. Amazingly, it worked! I’ve used <a href="https://simplemind.eu/">SimpleMind</a> to structure and create this article.<br />
<br />
<a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-08_at_08.07.18.png"><!-- s9ymdb:2633 --></a><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-08_at_19.50.54.png"><!-- s9ymdb:2635 --><img alt="" class="serendipity_image_center" height="300" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-11-08_at_19.50.54.png" width="400" /></a>All the resources are available in this mind map: <a class="block_level opens_window" href="https://ntpro.nl/blog/uploads/Raspberry_Pi_Pico_LED_Control1.smmx" title="Raspberry_Pi_Pico_LED_Control.smmx"><!-- s9ymdb:2634 -->Raspberry_Pi_Pico_LED_Control.smmx</a>. This is <a href="https://chat.openai.com/c/850b1886-2fb2-45d2-8393-09c3d4cc46d6">the link</a> to the original ChatGPT discussion. The following <a href="https://github.com/esloof/Raspberry-Pi-Pico-LED-Control-by-ChatGPT">link</a> leads to the working MicroPython code on GitHub. </p>
<p>Comments on <a href="https://twitter.com/esloof/status/1722147037834015119"><em><strong>X</strong></em></a> please.</p>
Eric Sloofnospam@example.com (Eric Sloof)2023-11-08T06:55:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37280https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3728VCI of the Year EMEA 2023
https://ntpro.nl/blog/archives/3727-VCI-of-the-Year-EMEA-2023.html
<p><span style="font-size:12pt"><span style="font-family:Calibri,sans-serif">Before the official start of VMware Explore 2023, there are some pre-events in and around the Gran Via | Fira de Barcelona. One of these events is the VMware Certified Instructor Forum. This is where all the VCI’s are briefed about Curriculum Roadmap Updates, Lab Enhancements, and lots of other topics.</span></span></p>
<p><span style="font-size:12pt"><span style="font-family:Calibri,sans-serif">At the end of the day, the announcements of the <span style="font-size:11.5pt"><span style="font-family:"Arial",sans-serif"><span style="color:black">Recognition Awards</span></span></span> are made, and this year I’m the winner.  I’m officially “VCI of the Year EMEA 2023”. It’s a shame I wasn’t present to receive the award in person, <span lang="EN-US" style="color:black">because</span> I’ve already attended the VMware Explore in Las <span lang="EN-US" style="color:black">Vegas,</span> but nevertheless, I feel proud of winning this achievement, so I</span></span><span lang="EN-US" style="font-size:12.0pt"><span style="font-family:"Calibri",sans-serif"> </span></span><span lang="EN-US" style="font-size:12.0pt"><span style="font-family:"Calibri",sans-serif"><span style="color:black">recorded</span></span></span><span lang="EN-US" style="font-size:12.0pt"><span style="font-family:"Calibri",sans-serif"> a short thank you video.</span></span></p>
<p><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/8X6b2xSbf_s?si=QpSNf25uzB6VZofC" title="YouTube video player" width="560"></iframe></p>
<p><span lang="EN-US" style="font-size:12.0pt"><span style="font-family:"Calibri",sans-serif">The VMware Certified Instructor of the Year Badge is presented once a year to a VMware Instructor for their outstanding performance. A VMware Certified Instructor with this badge has maintained the highest Effective Effort Score in the region throughout the year, delivering a wide range of challenging courses with exceptional feedback from both customers and partners.</span></span></p>
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/EMEA2023.png"><!-- s9ymdb:2628 --></a>Earning Criteria:</p>
<ul>
<li>Be a valid VMware Certified Instructor<a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/EMEA2023.png"><img alt="" class="serendipity_image_right" height="110" loading="lazy" src="https://ntpro.nl/blog/uploads/EMEA2023.serendipityThumb.png" width="110" /></a></li>
<li>Deliver a broad range of advanced VMware courses</li>
<li>Go above and beyond to exceed customer expectations</li>
<li>Maintain an exceptional student evaluation score throughout the year</li>
<li>Have the highest Effective Effort Score throughout 2023</li>
</ul>
<p>Tweet @esloof on <a href="https://twitter.com/esloof/status/1721557249150062972?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1721557249150062972%7Ctwgr%5E2a33b76fc77bebc41206156af6f393ea5a5ad8cf%7Ctwcon%5Es1_c10&ref_url=https%3A%2F%2Fpublish.twitter.com%2F%3Fquery%3Dhttps3A2F2Ftwitter.com2Fesloof2Fstatus2F1721557249150062972widget%3DTweet"><em><strong>X</strong></em></a></p>
Eric Sloofnospam@example.com (Eric Sloof)2023-11-06T15:36:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37270https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3727Performance Best Practices for VMware vSphere 8.0 Update 2
https://ntpro.nl/blog/archives/3726-Performance-Best-Practices-for-VMware-vSphere-8.0-Update-2.html
<p><a class="serendipity_image_link" rel="lightbox" href="https://ntpro.nl/blog/uploads/Screenshot_2023-11-06_at_04.45.22.png"><!-- s9ymdb:2626 --><img alt="" class="serendipity_image_right" height="350" loading="lazy" src="https://ntpro.nl/blog/uploads/Screenshot_2023-11-06_at_04.45.22.png" width="250" /></a>This book, <a href="https://www.vmware.com/techpapers/2023/vsphere-esxi-vcenter-server-80U2-performance-best-practices.html">Performance Best Practices for VMware vSphere 8.0 Update 2</a>, provides performance tips that cover the most performance-critical areas of VMware vSphere 8.0 Update 2. It's intended for system administrators planning a VMware vSphere 8.0 Update 2 deployment and want to maximize its performance. The book assumes the reader is already familiar with VMware vSphere concepts and terminology.</p>
<p>This book consists of the following chapters:</p>
<ul>
<li>Chapter 1, “Hardware for Use with VMware vSphere,” on page 11, provides guidance on selecting hardware for use with vSphere.</li>
<li>Chapter 2, “ESXi and Virtual Machines,” on page 25, provides guidance regarding VMware ESXi™ software and the virtual machines that run in it.</li>
<li>Chapter 3, “Guest Operating Systems,” on page 55, provides guidance regarding the guest operating systems running in vSphere virtual machines.</li>
<li>Chapter 4, “Virtual Infrastructure Management,” on page 67, provides guidance regarding infrastructure management best practices.</li>
</ul>
Eric Sloofnospam@example.com (Eric Sloof)2023-11-06T03:39:00Zhttps://ntpro.nl/blog/wfwcomment.php?cid=37260https://ntpro.nl/blog/rss.php?version=1.0&type=comments&cid=3726