<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Xudong Guo on Medium]]></title>
        <description><![CDATA[Stories by Xudong Guo on Medium]]></description>
        <link>https://medium.com/@guoxudong?source=rss-294d15ad6734------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*WdWY8q5CsiXyJOso</url>
            <title>Stories by Xudong Guo on Medium</title>
            <link>https://medium.com/@guoxudong?source=rss-294d15ad6734------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 13 Apr 2026 08:24:17 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@guoxudong/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[SkyPilot: Run LLMs and AI on any cloud with one click]]></title>
            <link>https://guoxudong.medium.com/skypilot-run-llms-and-ai-on-any-cloud-with-one-click-0861ac8772e6?source=rss-294d15ad6734------2</link>
            <guid isPermaLink="false">https://medium.com/p/0861ac8772e6</guid>
            <category><![CDATA[llm]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[cloud-infrastructure]]></category>
            <dc:creator><![CDATA[Xudong Guo]]></dc:creator>
            <pubDate>Thu, 12 Oct 2023 04:14:06 GMT</pubDate>
            <atom:updated>2023-10-12T04:14:06.992Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*fWeWuYYGxj4IIuDhgqRMkg.png" /></figure><p>With the growing prominence of cloud computing, there’s a pressing demand for seamless, cost-effective deployment of large language models (LLMs), AI, and batch jobs across various cloud platforms. Enter SkyPilot, designed to tackle this challenge. It not only streamlines cloud infrastructure operations, allowing users to deploy and scale jobs effortlessly across any cloud platform, but also intelligently compares real-time GPU prices from multiple providers. This ensures users select the most cost-effective platform for their tasks, leading to substantial cost savings and optimized GPU availability. Consequently, SkyPilot responds to the market’s call for efficient and affordable cloud resource utilization. By leveraging SkyPilot, both enterprises and individual developers can harness the full potential of GPUs, thereby advancing artificial intelligence and big data technologies and ushering in new horizons for the cloud computing industry.</p><h3><strong>SkyPilot</strong></h3><p>SkyPilot is a framework designed for large language models (LLMs), AI, and batch jobs that can run on any cloud platform. It’s a CLI tool and is very convenient for users familiar with the command line. With just one command, a complete cloud environment can be initiated without delving into the specifics of VMs, networks, or security group configurations. Compared with Terraform, SkyPilot offers faster speed and a better experience. Most importantly, it allows users to use the same configuration on multiple cloud platforms, saving a lot of learning and adaptation time.</p><p>Key advantages of SkyPilot include:</p><p>1. <strong>Cloud Infrastructure Abstraction</strong>: Simplifies the process of launching jobs and clusters on any cloud, making it easy to scale and access object storage.</p><p>2. <strong>Maximized GPU Availability</strong>: Automatically allocates resources in all accessible regions and clouds, achieving automatic failover.</p><p>3. <strong>Reduced Cloud Costs</strong>: Uses spot VMs to save costs, automatically selects the cheapest resources, and shuts down idle clusters.</p><p>4. <strong>No Code Changes Needed</strong>: Compatible with existing GPU, TPU, and CPU workloads without code modifications.</p><p>In addition to these advantages, a core feature of SkyPilot is simplifying cloud infrastructure management. Its key features include:</p><ul><li><strong>Managed Spot</strong>: Optimizes resource allocation by leveraging spot VMs (temporary virtual machines), offering users a 3–6x cost saving. It also ensures stable job operation in case of preemption events.</li><li><strong>Smarter Optimizer</strong>: Smartly chooses the cheapest virtual machine, region, or cloud platform to further save user costs.</li></ul><p><strong>Other Features and Characteristics</strong>:</p><ul><li><strong>Cross-Cloud Platform Support</strong>: Runs on AWS, Azure, GCP, and other cloud platforms.</li><li><strong>Easy Expansion</strong>: Easily runs multiple jobs, which are automatically managed to ensure effective resource utilization.</li><li><strong>Object Storage Access</strong>: Simplifies access to object storage like S3, GCS, R2, etc., facilitating data management and storage.</li></ul><p>Currently supported cloud providers include AWS, Azure, GCP, Lambda Cloud, IBM, Samsung, OCI, Cloudflare, and Kubernetes:</p><figure><img alt="Supported Cloud Platforms" src="https://cdn-images-1.medium.com/max/1024/1*V9dY0Z8ADA_TzEnSc2dLKg.png" /><figcaption>Supported Cloud Platforms</figcaption></figure><h3><strong>Quick Start</strong></h3><p>Here’s how to use SkyPilot to deploy the <a href="https://github.com/skypilot-org/skypilot/tree/master/llm/llama-2">Llama-2 Chatbot</a> on Azure.</p><h4><strong>Installation</strong></h4><p>First, ensure you have Python 3.7 or higher installed on your system. For Apple Silicon, it’s recommended to use Python 3.8 or higher. Here’s how to install SkyPilot:</p><ul><li>Create and activate a new conda environment (recommended but not mandatory):</li></ul><pre>conda create -y -n sky python=3.8<br>conda activate sky</pre><ul><li>Install SkyPilot using pip. Depending on the cloud service providers you plan to use with SkyPilot, you can choose additional installation options. For instance, if you wish to use SkyPilot on AWS and Azure, run:</li></ul><pre>pip install &quot;skypilot[aws,azure]&quot;</pre><p>Alternatively, you can install all available additional options:</p><pre>pip install &quot;skypilot[all]&quot;</pre><p>Moreover, you can opt to install the latest nightly build:</p><pre>pip install -U &quot;skypilot-nightly[all]&quot;</pre><p>Or install SkyPilot from source:</p><pre>git clone https://github.com/skypilot-org/skypilot.git<br>cd skypilot<br>pip install &quot;.[all]&quot;</pre><h4><strong>Configuration</strong></h4><p>After installation, some initial configurations are necessary to connect to your cloud provider. These configuration steps may vary depending on the cloud provider. The overall configuration process is relatively simple. If you’ve already set up the corresponding cloud CLI locally, you can use the following command to check if SkyPilot can access it properly:</p><pre>sky check</pre><p>You’ll see output indicating the access status for each cloud:</p><figure><img alt="sky check" src="https://cdn-images-1.medium.com/max/1024/1*-3aKLEEaJaW_jFU3CUeq-g.png" /><figcaption>sky check</figcaption></figure><p>Next, we’ll briefly cover how to configure for Azure. For configurations for other clouds, refer to the <a href="https://skypilot.readthedocs.io/en/latest/getting-started/installation.html#cloud-account-setup">official documentation</a>.</p><ul><li><a href="https://learn.microsoft.com/en-us/cli/azure/install-azure-cli?WT.mc_id=AZ-MVP-5005283">Download and install the Azure CLI</a>.</li><li>Log in to the Azure CLI with az login .</li><li>Retrieve your account’s `subscription_id` list using az account subscription list.</li><li>Set your desired subscription with az account set -s &lt;subscription_id&gt;.</li></ul><pre># Login<br>az login<br># Set the subscription to use<br>az account set -s &lt;subscription_id&gt;</pre><ul><li>Finally, run `sky check` again to verify the successful configuration.</li></ul><h4><strong>Creating and Running Llama-2 Chatbot</strong></h4><p>Outlined below are the preliminary steps. For a comprehensive guide, please consult the [official documentation](https://github.com/skypilot-org/skypilot/tree/master/llm/llama-2).&quot;</p><p><strong>Pre-requisites</strong></p><ul><li>Visit <a href="https://ai.meta.com/resources/models-and-libraries/llama-downloads/">this page</a> to apply for the access to the Llama-2 model.</li></ul><figure><img alt="Access granted" src="https://cdn-images-1.medium.com/max/1024/1*BBLbehK0MxHMdwZhjImWKw.png" /></figure><ul><li>Get the access token from huggingface, <a href="https://huggingface.co/settings/token">generate a read-only access token on huggingface</a>, and ensure your huggingface account <a href="https://huggingface.co/meta-llama/Llama-2-7b-chat/tree/main">can access the Llama-2 model</a>.</li><li>Fill the access token in the chatbot-meta.yaml file.</li></ul><pre>envs:<br>  MODEL_SIZE: 7<br>  HF_TOKEN: &lt;your-huggingface-token&gt;</pre><p><strong>Running Llama-2 Chatbot with SkyPilot</strong></p><ul><li>Create a new YAML file named `chatbot-meta.yaml` and add the following content:</li></ul><pre>resources:<br>  accelerators: V100:1<br>  disk_size: 1024<br><br>envs:<br>  MODEL_SIZE: 7<br>  HF_TOKEN: &lt;your-huggingface-token&gt; # TODO: Replace with huggingface token<br><br>setup: |<br>  set -ex<br><br>  git clone https://github.com/facebookresearch/llama.git || true<br>  cd ./llama<br>  pip install -e .<br>  cd -<br><br>  git clone https://github.com/skypilot-org/sky-llama.git || true<br>  cd sky-llama<br>  pip install torch==1.12.1+cu113 --extra-index-url https://download.pytorch.org/whl/cu113<br>  pip install -r requirements.txt<br>  pip install -e .<br>  cd -<br><br>  # Download the model weights from the huggingface hub, as the official<br>  # download script has some issues.<br>  git config --global credential.helper cache<br>  sudo apt -y install git-lfs<br>  pip install transformers<br>  python -c &quot;import huggingface_hub; huggingface_hub.login(&#39;${HF_TOKEN}&#39;, add_to_git_credential=True)&quot;<br>  git clone https://huggingface.co/meta-llama/Llama-2-${MODEL_SIZE}b-chat<br><br>  wget https://github.com/tsl0922/ttyd/releases/download/1.7.2/ttyd.x86_64<br>  sudo mv ttyd.x86_64 /usr/local/bin/ttyd<br>  sudo chmod +x /usr/local/bin/ttyd<br><br>run: |<br>  cd sky-llama<br>  ttyd /bin/bash -c &quot;torchrun --nproc_per_node $SKYPILOT_NUM_GPUS_PER_NODE chat.py --ckpt_dir ~/sky_workdir/Llama-2-${MODEL_SIZE}b-chat --tokenizer_path ~/sky_workdir/Llama-2-${MODEL_SIZE}b-chat/tokenizer.model&quot;</pre><ul><li>Run the following command to start the cluster and execute the task:</li></ul><pre>sky launch -c llama chatbot-meta.yaml</pre><figure><img alt="launch" src="https://cdn-images-1.medium.com/max/1024/1*IF13X7so-SBBft1R55RgZg.png" /><figcaption>launch</figcaption></figure><p>In the above steps, llama is the name of the cluster, and chatbot-meta.yaml is the task configuration file. Within a few minutes, SkyPilot will complete cluster creation, configuration, and task execution on Azure’s V100 GPU.</p><ul><li>Open a new terminal and execute the following command to bind local</li></ul><p>port 7681 to the cluster’s 7681 port:</p><pre>ssh -L 7681:localhost:7681 llama</pre><ul><li>Open http://localhost:7681 in your browser and start chatting!</li></ul><figure><img alt="ttyd chat" src="https://cdn-images-1.medium.com/max/1024/1*0SyfyozRc-g2FNthJquHzw.png" /><figcaption>ttyd chat</figcaption></figure><h4><strong>Cleaning Up</strong></h4><p>When you are done, you can use the following commands to stop or tear down the cluster:</p><ul><li>Stop the cluster, run:</li></ul><pre>sky stop lama # or pass your custom name if you used &quot;-c &lt;other name&gt;&quot;</pre><ul><li>Restart a stopped cluster and relaunch the Chatbot:</li></ul><pre>sky launch chatbot-meta.yaml -c llama - no-setup</pre><p>Using --no-setup aims to skip the setup step since the stopped cluster has retained its disk contents.</p><ul><li>To tear down the cluster (non-restartable), run:</li></ul><pre>sky down llama # or pass your custom name if you used &quot;-c &lt;other name&gt;&quot;</pre><p>To see your clusters, run sky status, which is a single pane of glass for all your clusters across regions/clouds.</p><h3><strong>Advanced Usage</strong></h3><p>Beyond the basic methods mentioned above, SkyPilot has numerous advanced features. Here’s a brief introduction to some of them.</p><h4><strong>Show Supported GPU/TPU/Accelerators and Their Prices</strong></h4><p>The names and counts shown can be set in the accelerators field in task YAMLs, or in the — gpus flag in CLI commands. For example, if this table shows 8x V100s are supported, then the string V100:8 will be accepted by the above.</p><p>Different clouds have confusing GPU model names and their prices. SkyPilot has standardized the naming and pricing of the same GPU model and provides a show-gpus command to display currently supported GPU/TPU/accelerators and their prices:</p><pre>sky show-gpus &lt;gpu&gt;</pre><h4><strong>Public IP and Ports</strong></h4><p>If you prefer to access your clusters using ssh, you can use the following command to get the cluster’s Public IP:</p><pre>sky status - ip &lt;your-custom-name&gt;</pre><p>Moreover, if you wish to open some ports, you can use resources.ports to specify ports to open:</p><pre>resources:<br># ports: 8888<br>  ports:<br>    - 8888<br>    - 10020-10040<br>    - 20000-20010</pre><p>SkyPilot also support opening ports through the CLI:</p><pre>sky launch -c jupyter - ports 8888 jupyter_lab.yaml</pre><h4><strong>Interactive Nodes</strong></h4><p>SkyPilot also offers interactive nodes, allowing users to quickly start specified single node VMs on clouds with simple CLI commands, without needing a YAML configuration file.</p><ul><li>sky gpunode</li><li>sky cpunode</li><li>sky tpunode</li></ul><pre># Launch a default gpunode.<br>sky gpunode<br># Do work, then log out. The node is kept running. Attach back to the<br># same node and do more work.<br>sky gpunode<br># Create many interactive nodes by assigning names via - cluster (-c).<br>sky gpunode -c node0<br>sky gpunode -c node1<br># Port forward.<br>sky gpunode - port-forward 8080 - port-forward 4650 -c cluster_name<br>sky gpunode -p 8080 -p 4650 -c cluster_name<br># Sync current working directory to ~/workdir on the node.<br>rsync -r . cluster_name:~/workdir</pre><h4><strong>Show Estimated Cost of Launched Clusters</strong></h4><p>SkyPilot also provides a command to display the estimated cost of running clusters:</p><pre>sky cost-report</pre><p>Note: This CLI is experimental. The estimated cost is calculated based on the local cache of cluster status and may not be accurate.</p><h4><strong>Fetch Global Region Information for Azure and GCP</strong></h4><p>By default, SkyPilot supports most global regions on AWS, but only US regions on GCP and Azure. If you specify a region outside of the US, you might encounter an error like:</p><pre>ValueError: Invalid region &#39;australiaeast&#39;<br>List of supported azure regions: &#39;centralus, eastus, eastus2, northcentralus, southcentralus, westcentralus, westus, westus2, westus3&#39;</pre><p>If you wish to use all global regions, additional commands are required to fetch global region information for Azure and GCP:</p><pre>version=$(python -c &#39;import sky; print(sky.clouds.service_catalog.constants.CATALOG_SCHEMA_VERSION)&#39;)<br>mkdir -p ~/.sky/catalogs/${version}<br>cd ~/.sky/catalogs/${version}<br># GCP<br>pip install lxml<br># Fetch all regions for GCP<br>python -m sky.clouds.service_catalog.data_fetchers.fetch_gcp - all-regions<br># Azure<br># Fetch all regions for Azure<br>python -m sky.clouds.service_catalog.data_fetchers.fetch_azure - all-regions</pre><h3><strong>Conclusion</strong></h3><p>SkyPilot is a highly versatile and powerful tool that brings a new level of simplicity and efficiency to cloud infrastructure management, especially for large language models and AI batch jobs. By automatically selecting the cheapest and most effective resources, and providing a smooth user experience, SkyPilot is poised to be a game-changer for enterprises and developers in the cloud computing space. Whether you’re a solo developer or part of a large organization, SkyPilot offers features and benefits that can streamline your cloud operations, save costs, and ensure maximum efficiency. With an active and growing community, the future of SkyPilot looks very promising. Give it a try and experience the future of cloud computing today!</p><h3><strong>References</strong></h3><ul><li><a href="https://skypilot.readthedocs.io/en/latest/index.html">SkyPilot Document</a></li><li><a href="https://github.com/skypilot-org/skypilot">skypilot-org/skypilot</a></li><li><a href="https://github.com/skypilot-org/skypilot/tree/master/llm/llama-chatbots">Run LLaMA LLM chatbots on any cloud with one click</a></li><li><a href="https://learn.microsoft.com/en-us/cli/azure/install-azure-cli?WT.mc_id=AZ-MVP-5005283">How to install the Azure CLI</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=0861ac8772e6" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Get an OpenSSF Best Practices badge for your open source project!]]></title>
            <link>https://guoxudong.medium.com/get-an-openssf-best-practices-badge-for-your-open-source-project-26270132bf90?source=rss-294d15ad6734------2</link>
            <guid isPermaLink="false">https://medium.com/p/26270132bf90</guid>
            <category><![CDATA[openssf]]></category>
            <dc:creator><![CDATA[Xudong Guo]]></dc:creator>
            <pubDate>Sun, 08 Oct 2023 12:47:32 GMT</pubDate>
            <atom:updated>2023-10-08T12:47:32.283Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kXzIVJICLhIEgiweO0hZMg.png" /></figure><p>As open-source software is widely used globally, ensuring its security becomes increasingly important. The Open Source Security Foundation (OpenSSF) was born to address this challenge. Supported by the Linux Foundation, this project aims to enhance the security, reliability, and sustainability of open-source software. To achieve this goal, OpenSSF has launched the Best Practices Badge Program. This project was originally developed under the CII, but it is now part of the Open Source Security Foundation (OpenSSF) Best Practices Working Group (WG). The original name of the project was the CII Best Practices badge, but it is now the OpenSSF Best Practices badge project.</p><figure><img alt="Kubernetes README" src="https://cdn-images-1.medium.com/max/668/1*U8xro2u9A2mlWo2-XKev2A.png" /></figure><h3><strong>OpenSSF</strong></h3><p>The OpenSSF (Open Source Security Foundation) is a cross-industry organization dedicated to improving the security of open source software. Established in 2020, the organization was initiated by several technology companies (including Google, Microsoft, IBM, GitHub, Red Hat, and others) and later attracted many other companies and organizations to join. The establishment of OpenSSF aims to address the growing security challenges in the open source software ecosystem, striving to enhance the security of open source software through collaboration, education, research, and best practices.</p><p>The main work of OpenSSF includes:</p><p>1. Enhancing open source software supply chain security: OpenSSF focuses on software supply chain security to mitigate risks within the supply chain. This includes ensuring the security of source code, build processes, and distribution channels, thus preventing the infiltration of malware, backdoors, and other security vulnerabilities.</p><p>2. Promoting open source security best practices: OpenSSF helps projects and organizations improve security by formulating and promoting open source security best practices. These practices involve various stages of the software development lifecycle, including design, coding, testing, and deployment.</p><p>3. Training and education: OpenSSF provides training and education resources to raise awareness and skills of developers and maintainers in open source software security. These resources include online courses, guides, best practice documents, and more.</p><p>4. Funding critical projects: OpenSSF ensures the continuous development and proper maintenance of projects that are of significant importance to open source security by providing funding. These projects may include infrastructure projects, security tools, and research projects, among others.</p><p>5. Research and development: OpenSSF also supports security research and development efforts to continuously improve and innovate open source security technologies.</p><p>In summary, OpenSSF is committed to enhancing the security of open source software through cross-industry collaboration, education, research, and funding, creating a safer future for the entire open source ecosystem.</p><h3><strong>What is the OpenSSF Best Practices Badge Program</strong></h3><p>The Best Practices Badge Program aims to encourage and assist open-source projects in following software security best practices. Inspired by the many badge systems available on GitHub, this voluntary, free, self-assessment program allows users to quickly complete an evaluation of their open-source project by filling out each best practice on the web page, while also providing guidance and standards for improving project security. The badge program has three levels: PASSING, SILVER, and GOLD, each with a certain number of security requirements.</p><h4><strong>Badge levels and requirements</strong></h4><p>First, you need to understand the three levels of the badge program: PASSING, SILVER, and GOLD, as well as their corresponding security requirements. These requirements cover various aspects such as security policies, version control, continuous integration, etc. You can view these requirements by visiting the <a href="https://bestpractices.coreinfrastructure.org/en/criteria_stats">official documentation</a> of the OpenSSF Best Practices Badge Program.</p><figure><img alt="Criteria Statistics" src="https://cdn-images-1.medium.com/max/1024/1*0qrrpuVzGxuGLpKJvA-g2g.png" /></figure><h4><strong>Register and link your project</strong></h4><p>Visit the OpenSSF Best Practices Badge [project website](https://bestpractices.coreinfrastructure.org/), log in with your GitHub account, or register a new account. After completing the registration, log in to your account, click Get Your Badge Now!, and if you are logged in with a GitHub account, you can directly select your project from the Select one of your GitHub repos dropdown. Of course, open-source projects on non-GitHub platforms are also supported; just fill in the home page URL and version control repository address as required.</p><figure><img alt="New badge" src="https://cdn-images-1.medium.com/max/1024/1*5rHo8yzMFSsEzjaf1DELxw.png" /><figcaption>New badge</figcaption></figure><h4><strong>Project evaluation</strong></h4><figure><img alt="Email" src="https://cdn-images-1.medium.com/max/1024/1*dISrt9gWHY5mhmahFre_NA.png" /><figcaption>Email</figcaption></figure><p>After submitting, you will receive an explanatory email containing some necessary instructions and an address for continuing the evaluation of your open-source project. Next, you will need to self-assess your open-source project.</p><figure><img alt="Evaluation page" src="https://cdn-images-1.medium.com/max/1024/1*t_urJX3Tcteb7cp2iHgC1Q.png" /><figcaption>Evaluation page</figcaption></figure><p>The self-assessment is divided into six main categories: `<strong>Basics</strong>`, `<strong>Change Control</strong>`, `<strong>Reporting</strong>`, `<strong>Quality</strong>`, `<strong>Security</strong>`, and `<strong>Analysis</strong>`. There are 67 items for the `<strong>Passing</strong>` level, 55 for `<strong>Silver</strong>`, and 23 for `<strong>Gold</strong>`. The form will automatically fill in some content based on your GitHub project’s configuration, but it’s not 100% accurate. You need to fill in the content according to the actual situation of the project and supplement the proof URL or explanation in the form. After completing all the items, click `<strong>Submit(and exit)</strong>` to finish filling in the content.</p><h4><strong>Display the badge</strong></h4><p>OpenSSF provides badge images and embedding code for easy display on various platforms. On your project page, click `Show details`, and the Markdown and HTML formats for the badge will be displayed. You can add the corresponding content to your project’s `README` file, official website, etc., to show the project’s commitment to following software security best practices.</p><figure><img alt="embedding md" src="https://cdn-images-1.medium.com/max/1024/1*j67cIcHHY2AfkZ9AEl4BYQ.png" /><figcaption>embedding md</figcaption></figure><p>Please note that as your project evolves, you need to continue paying attention to badge requirements and ensure that your project always meets these requirements. Additionally, you can use the badge as an incentive to further improve your project’s security, aiming for a SILVER or GOLD badge.</p><h3><strong>Conclusion</strong></h3><p>In summary, the OpenSSF Best Practices Badge Program provides a practical framework for open-source projects, guiding them to follow software security best practices. By encouraging project teams to focus on security, providing core guidelines and clear evaluation criteria, this program helps to raise the overall security level of the open-source ecosystem. Every member of the open-source community should pay attention to and support this project, working together to make our digital world safer and more reliable.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=26270132bf90" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>