<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Tools on Shaowen Chen's Website</title><link>https://www.chenshaowen.com/en/tags/tools/</link><description>Recent content in Tools on Shaowen Chen's Website</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>&amp;copy;2016 - {year}, All Rights Reserved.</copyright><lastBuildDate>Thu, 26 Feb 2026 00:00:00 +0000</lastBuildDate><sy:updatePeriod>weekly</sy:updatePeriod><atom:link href="https://www.chenshaowen.com/en/tags/tools/atom.xml" rel="self" type="application/rss+xml"/><item><title>OpenClaw Installation and Configuration</title><link>https://www.chenshaowen.com/en/blog/installation-and-configuration-of-openclaw.html</link><pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate><atom:modified>Thu, 26 Feb 2026 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/installation-and-configuration-of-openclaw.html</guid><description>1. Preparing the Node Environment Install nvm 1 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash Set the nvm environment variables You need to edit Bash&amp;rsquo;s config file and add the following:
1 2 3 export NVM_DIR=&amp;#34;$HOME/.nvm&amp;#34; [ -s &amp;#34;$NVM_DIR/nvm.sh&amp;#34; ] &amp;amp;&amp;amp; \. &amp;#34;$NVM_DIR/nvm.sh&amp;#34; [ -s &amp;#34;$NVM_DIR/bash_completion&amp;#34; ] &amp;amp;&amp;amp; \. &amp;#34;$NVM_DIR/bash_completion&amp;#34; Install Node 1 nvm install 22 default 2.</description><dc:creator>微信公众号</dc:creator><category>OpenClaw</category><category>AI</category><category>Agent</category><category>LLM</category><category>Tools</category><category>R&amp;D</category><category>Learning</category></item><item><title>Using claude-code on a Server</title><link>https://www.chenshaowen.com/en/blog/using-claude-code-on-server.html</link><pubDate>Fri, 29 Aug 2025 00:00:00 +0000</pubDate><atom:modified>Fri, 29 Aug 2025 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/using-claude-code-on-server.html</guid><description>The same applies to a desktop environment. 1. Prepare the node.js environment Install nvm 1 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash 1 2 echo &amp;#39;export NVM_DIR=&amp;#34;$([ -z &amp;#34;${XDG_CONFIG_HOME-}&amp;#34; ] &amp;amp;&amp;amp; printf %s &amp;#34;${HOME}/.nvm&amp;#34; || printf %s &amp;#34;${XDG_CONFIG_HOME}/nvm&amp;#34;)&amp;#34;&amp;#39; &amp;gt;&amp;gt; ~/.bashrc echo &amp;#39;[ -s &amp;#34;$NVM_DIR/nvm.sh&amp;#34; ] &amp;amp;&amp;amp; \. &amp;#34;$NVM_DIR/nvm.sh&amp;#34;&amp;#39; &amp;gt;&amp;gt; ~/.bashrc 1 source</description><dc:creator>微信公众号</dc:creator><category>Claude</category><category>CLI</category><category>AI</category><category>LLM</category><category>Tools</category><category>R&amp;D</category><category>Operations</category></item><item><title>Using Gemini CLI on a Server</title><link>https://www.chenshaowen.com/en/blog/using-gemini-cli-on-server.html</link><pubDate>Fri, 04 Jul 2025 00:00:00 +0000</pubDate><atom:modified>Fri, 04 Jul 2025 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/using-gemini-cli-on-server.html</guid><description>1. Get the Project ID and API Key Visit https://aistudio.google.com/apikey Get the project ID and API key, and set them as environment variables 1 2 echo &amp;#34;export GOOGLE_CLOUD_PROJECT=&amp;#34; &amp;gt;&amp;gt; ~/.bashrc echo &amp;#34;export GEMINI_API_KEY=&amp;#34; &amp;gt;&amp;gt; ~/.bashrc 1 source ~/.bashrc 2. Prepare the Node.js Environment Install nvm 1 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh |</description><dc:creator>微信公众号</dc:creator><category>Gemini</category><category>CLI</category><category>AI</category><category>LLM</category><category>Learning</category><category>Tools</category><category>Operations</category><category>Programming Assistant</category></item><item><title>LLM Deployment Tool llama.cpp</title><link>https://www.chenshaowen.com/en/blog/llama-cpp-that-is-a-llm-deployment-tool.html</link><pubDate>Tue, 05 Sep 2023 00:00:00 +0000</pubDate><atom:modified>Tue, 05 Sep 2023 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/llama-cpp-that-is-a-llm-deployment-tool.html</guid><description>1. LLM Deployment Tool llama.cpp Research on large models is split into two parts: training and inference. The training process is essentially the process of finding model parameters that minimize the model&amp;rsquo;s loss function and optimize the inference results. Once training is complete, the model&amp;rsquo;s parameters are fixed, and at</description><dc:creator>微信公众号</dc:creator><category>AI</category><category>LLM</category><category>Tools</category><category>llama.cpp</category><category>Inference</category><category>Deployment</category></item><item><title>Documentation as Tooling - The Ops Tool</title><link>https://www.chenshaowen.com/en/blog/a-open-source-ops-tool-project.html</link><pubDate>Tue, 11 Apr 2023 00:00:00 +0000</pubDate><atom:modified>Tue, 11 Apr 2023 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/a-open-source-ops-tool-project.html</guid><description>1. What Documentation as Tooling Means &amp;ldquo;Documentation as tooling, tooling as a product&amp;rdquo; is a slogan I have repeated many times in my previous blog posts.
A good document is no match for a tool that is pleasant to use. A script or a single command is more direct than reading documentation and can solve the problem faster.</description><dc:creator>微信公众号</dc:creator><category>Ops</category><category>Tools</category><category>Project</category><category>Open Source</category><category>Operations</category></item><item><title>Using Falco to Monitor Runtime Security</title><link>https://www.chenshaowen.com/en/blog/listen-runtime-security-using-falco.html</link><pubDate>Sat, 11 Feb 2023 00:00:00 +0000</pubDate><atom:modified>Sat, 11 Feb 2023 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/listen-runtime-security-using-falco.html</guid><description>1. What Falco Is Falco is a cloud-native runtime security project contributed to the CNCF by Sysdig.
Falco implements an extensible event rule filtering engine. Through a series of operations — capturing events, matching security rules, and producing alert notifications — it can surface security problems in a system. The events come from system calls, and it also supports an ebpf probe; the rules are open source [1] and you can define your own extensions [2].</description><dc:creator>微信公众号</dc:creator><category>Falco</category><category>Kubernetes</category><category>Security</category><category>Tools</category><category>Operations</category></item><item><title>How to Add Your Own Runner Hosts to GitHub Actions</title><link>https://www.chenshaowen.com/en/blog/how-to-add-self-hosted-runners-to-github-action.html</link><pubDate>Fri, 04 Dec 2020 00:00:00 +0000</pubDate><atom:modified>Fri, 04 Dec 2020 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/how-to-add-self-hosted-runners-to-github-action.html</guid><description>1. What GitHub Actions Is In an earlier post I put the CI capabilities GitLab provides into practice — click here to see. The advantages of using GitLab are that it can be deployed privately, it allows an unlimited number of private repositories, its CI configuration is simple, and it can connect to self-hosted Runners.</description><dc:creator>微信公众号</dc:creator><category>GitHub</category><category>GitHub Actions</category><category>CICD</category><category>DevOps</category><category>Tools</category><category>R&amp;D</category><category>Operations</category></item><item><title>Development Tools and Productivity Tips</title><link>https://www.chenshaowen.com/en/blog/development-tools-and-productivity-tips.html</link><pubDate>Fri, 02 Nov 2018 00:00:00 +0000</pubDate><atom:modified>Fri, 02 Nov 2018 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/development-tools-and-productivity-tips.html</guid><description>Compiled from the &amp;ldquo;Development Tips&amp;rdquo; series, collecting common development tools and productivity-related techniques. 1. The Babel Transpiler ES6 provides many new features, but not every browser supports them perfectly, while ES5 support is far better. Babel is an ES6 transpiler that converts ES6 code into ES5 code. This means you</description><dc:creator>微信公众号</dc:creator><category>Tools</category><category>R&amp;D</category><category>Productivity</category><category>VSCode</category><category>Learning</category></item><item><title>The Right Way to Use Vim on Windows</title><link>https://www.chenshaowen.com/en/blog/correct-way-to-use-vim-on-windows.html</link><pubDate>Sun, 12 Aug 2018 00:00:00 +0000</pubDate><atom:modified>Sun, 12 Aug 2018 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/correct-way-to-use-vim-on-windows.html</guid><description>I had used Cygwin before, and Git Bash too. But neither of them works well with Vim, so I finally settled on MSYS2 as my console. 1. Comparing Cygwin, MinGW, and MSYS2 On Windows, the key to using Vim is finding a suitable console. When installing Vim plugins, a suitable</description><dc:creator>微信公众号</dc:creator><category>Vim</category><category>Tools</category><category>Windows</category><category>Development</category></item><item><title>Installing and Configuring Vim on Windows</title><link>https://www.chenshaowen.com/en/blog/vim-installation-and-configuration-on-windows-os.html</link><pubDate>Mon, 06 Aug 2018 00:00:00 +0000</pubDate><atom:modified>Mon, 06 Aug 2018 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/vim-installation-and-configuration-on-windows-os.html</guid><description>1. Introduction to Vim Vim is an editor that evolved from vi; its first version was released by Bram Moolenaar in 1991. The original name was Vi IMitation, and as features accumulated it was officially renamed Vi IMproved. The image above shows the learning curves of common editors. For most</description><dc:creator>微信公众号</dc:creator><category>Vim</category><category>Tools</category><category>Windows</category><category>R&amp;D</category></item><item><title>PPT Making Guide: Course Notes on the Presentation Part</title><link>https://www.chenshaowen.com/en/blog/notes-on-making-strategy-of-the-presentation.html</link><pubDate>Tue, 06 Mar 2018 20:55:29 +0000</pubDate><atom:modified>Tue, 06 Mar 2018 20:55:29 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/notes-on-making-strategy-of-the-presentation.html</guid><description>1. Overview Course prerequisite: the logical structure and content of the PowerPoint have already been worked out and written. The course enhances the expressiveness of PowerPoint mainly through the following six parts: Color Text Shapes Charts Slide Master Animation 2. Color 2.1 Understanding Color Hue Chromatic colors, such as purple,</description><dc:creator>微信公众号</dc:creator><category>PPT</category><category>Tools</category><category>Learning</category><category>Sharing</category></item><item><title>How to Build a PyPI Server with devpi</title><link>https://www.chenshaowen.com/en/blog/how-to-build-a-pypi-server-using-devpi.html</link><pubDate>Sun, 04 Mar 2018 00:00:00 +0000</pubDate><atom:modified>Sun, 04 Mar 2018 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/how-to-build-a-pypi-server-using-devpi.html</guid><description>When you install Python packages with pip, it looks up the corresponding package on the https://pypi.python.org/simple/ index by default, then downloads and installs it. But in an intranet environment, or when you need to publish some private packages to designated users, you have to build your own PyPI Server. This post mainly records the process of building a PyPI Server index with the devpi tool, along with some commonly used commands.</description><dc:creator>微信公众号</dc:creator><category>Python</category><category>devpi</category><category>Tools</category><category>Operations</category><category>Learning</category><category>PyPI</category><category>Private Index</category><category>Package Management</category><category>Intranet</category></item><item><title>Etcd, Confd, and Nginx Service Discovery</title><link>https://www.chenshaowen.com/en/blog/service-discovery-etcd-confd-nginx.html</link><pubDate>Thu, 08 Feb 2018 14:51:16 +0000</pubDate><atom:modified>Thu, 08 Feb 2018 14:51:16 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/service-discovery-etcd-confd-nginx.html</guid><description>This post mainly explains why the service discovery feature is needed and compares several service discovery tools. It also puts service discovery with Etcd, Confd, and Nginx into practice on CentOS. 1. Service Registration and Discovery 1.1 Why Service Registration and Discovery Are Needed With the rise of microservices, a</description><dc:creator>微信公众号</dc:creator><category>Tools</category><category>Microservices</category><category>Etcd</category><category>Confd</category><category>Nginx</category><category>Service Discovery</category></item><item><title>My Toolbox</title><link>https://www.chenshaowen.com/en/blog/toolbox.html</link><pubDate>Tue, 16 Jan 2018 00:00:00 +0000</pubDate><atom:modified>Tue, 16 Jan 2018 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/toolbox.html</guid><description>1. Documentation Pandoc Pandoc is a text conversion tool written in Haskell. It is fast and supports a wide range of formats, converting Markdown, LaTeX, and others into HTML, Docs, PDF, and more. All it takes is a simple command: 1 pandoc mypaper.md -o mypaper.docx Graphviz An open-source toolkit developed</description><dc:creator>微信公众号</dc:creator><category>Tools</category><category>Efficiency</category><category>R&amp;D</category><category>Learning</category><category>Sharing</category></item><item><title>Interactive Notebook - Jupyter</title><link>https://www.chenshaowen.com/en/blog/interactive-notebook-jupyter.html</link><pubDate>Mon, 25 Dec 2017 17:22:45 +0000</pubDate><atom:modified>Mon, 25 Dec 2017 17:22:45 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/interactive-notebook-jupyter.html</guid><description>1. Introduction Jupyter Notebook (formerly IPython notebook) is an interactive notebook that supports running more than 40 programming languages. Jupyter Notebook is in fact a web application that lets you create and share program documents, with support for live code, mathematical equations, visualizations, and Markdown. Its uses include data cleaning</description><dc:creator>微信公众号</dc:creator><category>Tools</category><category>Python</category><category>Notes</category><category>Jupyter</category><category>Learning</category><category>R&amp;D</category><category>Data Analysis</category><category>Machine Learning</category><category>Visualization</category></item><item><title>Common Git Commands</title><link>https://www.chenshaowen.com/en/blog/common-git-commands.html</link><pubDate>Mon, 18 Dec 2017 11:22:55 +0000</pubDate><atom:modified>Mon, 18 Dec 2017 11:22:55 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/common-git-commands.html</guid><description>1. Basic Concepts Workspace: the working area, the project files Index: the staging area, also called the pending-commit area; before a commit enters the repo, all updates are placed in the staging area Local Repository: the local repo, the version repository kept locally; HEAD points at the current development branch</description><dc:creator>微信公众号</dc:creator><category>Git</category><category>Tools</category><category>Version Control</category><category>Command Line</category><category>R&amp;D</category></item><item><title>Frontend Webpack Practice of GitLab CI</title><link>https://www.chenshaowen.com/en/blog/front-webpack-practice-of-gitlab-ci.html</link><pubDate>Wed, 08 Nov 2017 09:15:56 +0000</pubDate><atom:modified>Wed, 08 Nov 2017 09:15:56 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/front-webpack-practice-of-gitlab-ci.html</guid><description>Starting with GitLab 8.0, GitLab began integrating CI (Continuous Integration) functionality. You only need to add a Runner on the server and a .gitlab-ci.yml file in the project, and you can run CI. In GitLab Setup and Configuration I recorded the whole process of setting up a GitLab service from</description><dc:creator>微信公众号</dc:creator><category>Frontend</category><category>Continuous Integration</category><category>Tools</category><category>DevOps</category><category>GitLab</category><category>CICD</category></item><item><title>Building a Django Development Environment with Vagrant</title><link>https://www.chenshaowen.com/en/blog/build-django-development-environment-using-vagrant.html</link><pubDate>Mon, 25 Sep 2017 21:56:05 +0000</pubDate><atom:modified>Mon, 25 Sep 2017 21:56:05 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/build-django-development-environment-using-vagrant.html</guid><description>Docker solves the problem of environment isolation on the same machine and improves the efficiency of operations and deployment. Vagrant gives developers a unified, near-fully-isolated environment for development and testing. This article mainly discusses how to build a Django development environment with Vagrant. Versions: VirtualBox 5.0, Vagrant 1.8. 1. Basic</description><dc:creator>微信公众号</dc:creator><category>Django</category><category>Python</category><category>Vagrant</category><category>Tools</category><category>Development</category><category>R&amp;D</category><category>Operations</category></item><item><title>Building a Django Development Environment with Docker from Scratch (6) uWSGI, Django</title><link>https://www.chenshaowen.com/en/blog/how-to-package-django-development-environments-using-docker-6.html</link><pubDate>Sun, 24 Sep 2017 18:03:22 +0000</pubDate><atom:modified>Sun, 24 Sep 2017 18:03:22 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/how-to-package-django-development-environments-using-docker-6.html</guid><description>1. Directory Structure The django-devops-uwsgi directory holds the image build files that package uWSGI and Django. It installs the necessary packages such as uWSGI, pip, and virtualenv into the image.
When a container is created from the image, the start.sh script runs: it creates the Python virtual runtime environment, installs the dependency packages from Django&amp;rsquo;s requirements.</description><dc:creator>微信公众号</dc:creator><category>Docker</category><category>Django</category><category>Python</category><category>Services</category><category>Tools</category><category>R&amp;D</category><category>Operations</category></item><item><title>Packaging a Django Development Environment with Docker from Scratch (5) Nginx</title><link>https://www.chenshaowen.com/en/blog/how-to-package-django-development-environments-using-docker-5.html</link><pubDate>Sun, 24 Sep 2017 14:34:35 +0000</pubDate><atom:modified>Sun, 24 Sep 2017 14:34:35 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/how-to-package-django-development-environments-using-docker-5.html</guid><description>1. Directory Structure 1 2 3 4 5 6 7 8 9 10 11 12 ├── django-devops-nginx │ ├── Dockerfile │ └── nginx.repo ├── django-devops-compose │ ├── docker-compose.yml │ ├── www │ ├── conf │ │ ├── nginx.conf │ ├── log │ │ ├── nginx │ │ │ ├── access.log │ │ │ ├── error.</description><dc:creator>微信公众号</dc:creator><category>Docker</category><category>Services</category><category>Tools</category><category>Django</category><category>Nginx</category><category>Python</category><category>R&amp;D</category><category>Operations</category></item><item><title>Packaging a Django Development Environment with Docker from Scratch (3) Docker Compose</title><link>https://www.chenshaowen.com/en/blog/how-to-package-django-development-environments-using-docker-3.html</link><pubDate>Sat, 23 Sep 2017 19:56:03 +0000</pubDate><atom:modified>Sat, 23 Sep 2017 19:56:03 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/how-to-package-django-development-environments-using-docker-3.html</guid><description>1. Basic Concepts Docker Compose is a Docker tool for defining and running complex applications. With Docker Compose, you can define a multi-container application in a single file, then use a single command to start your application and finish all the preparation work.
Docker Compose positions itself as &amp;lsquo;defining and running complex applications with Docker&amp;rsquo;.</description><dc:creator>微信公众号</dc:creator><category>Docker</category><category>Services</category><category>Tools</category><category>Django</category><category>Python</category><category>R&amp;D</category><category>Operations</category></item><item><title>Packaging a Django Development Environment with Docker from Scratch (2) Dockerfile</title><link>https://www.chenshaowen.com/en/blog/how-to-package-django-development-environments-using-docker-2.html</link><pubDate>Fri, 22 Sep 2017 19:52:27 +0000</pubDate><atom:modified>Fri, 22 Sep 2017 19:52:27 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/how-to-package-django-development-environments-using-docker-2.html</guid><description>1. Basic Concepts A Dockerfile is a collection of instructions for building a Docker image. Docker reads Dockerfile instructions to build an image automatically. A Dockerfile is similar to a Makefile: both are text files that organize all the instructions in the order the image is built.
The command to build a Docker image:</description><dc:creator>微信公众号</dc:creator><category>Docker</category><category>Django</category><category>Python</category><category>Services</category><category>Tools</category><category>R&amp;D</category><category>Operations</category></item><item><title>Setting Up and Configuring GitLab</title><link>https://www.chenshaowen.com/en/blog/build-and-configure-of-gitlab.html</link><pubDate>Sat, 12 Aug 2017 00:51:07 +0000</pubDate><atom:modified>Sat, 12 Aug 2017 00:51:07 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/build-and-configure-of-gitlab.html</guid><description>1. Introduction GitLab is an open-source application developed with Ruby on Rails. It implements self-hosted Git project repositories, and public or private projects can be accessed through a web interface. It has features similar to GitHub, and can browse source code, manage defects and comments. It can manage team access</description><dc:creator>微信公众号</dc:creator><category>Tools</category><category>Management</category><category>Continuous Integration</category><category>GitLab</category><category>DevOps</category><category>Operations</category></item><item><title>Atom as a Lightweight Python Full-Stack IDE</title><link>https://www.chenshaowen.com/en/blog/atom-create-lightweight-python-full-stack-ide.html</link><pubDate>Sun, 06 Aug 2017 14:51:16 +0000</pubDate><atom:modified>Sun, 06 Aug 2017 14:51:16 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/atom-create-lightweight-python-full-stack-ide.html</guid><description>At the moment I use PyCharm as my integrated development tool for both front end and back end. My main stack is JavaScript, CSS, ECMAScript 6, Vue, Python, Django, Mako, and Markdown. Front-end work has been growing steadily lately, and PyCharm seems to be struggling. Atom, Sublime Text, and Visual Studio Code became the candidates; Atom is maintained by GitHub, has better community support, and is more configurable and more fun to play with.</description><dc:creator>微信公众号</dc:creator><category>Tools</category><category>Python</category><category>R&amp;D</category><category>IDE</category><category>Atom</category><category>Full-Stack</category></item><item><title>Programmer's Editor - Atom</title><link>https://www.chenshaowen.com/en/blog/programming-editor-atom.html</link><pubDate>Fri, 04 Aug 2017 23:46:56 +0000</pubDate><atom:modified>Fri, 04 Aug 2017 23:46:56 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/programming-editor-atom.html</guid><description>1. Introduction to Atom Atom is a code editor that supports the three major desktop platforms Windows, Mac, and Linux, is completely free, and is open source on GitHub. Go now 1.1 Pros and Cons Main advantages A strong development and maintenance team, an open source project, fast Bug fixes,</description><dc:creator>微信公众号</dc:creator><category>Tools</category><category>Development</category><category>R&amp;D</category><category>Editor</category><category>Learning</category></item><item><title>Axios ajax</title><link>https://www.chenshaowen.com/en/blog/axios-ajax.html</link><pubDate>Fri, 04 Aug 2017 07:07:11 +0000</pubDate><atom:modified>Fri, 04 Aug 2017 07:07:11 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/axios-ajax.html</guid><description>1. Basic Concepts 1.1 Ajax Ajax stands for &amp;ldquo;Asynchronous JavaScript and XML&amp;rdquo;. At its core it is made up of the JavaScript, XmlHttpRequest, and DOM objects: through the XmlHttpRequest object it sends an asynchronous request to the server, gets data back from the server, and then uses JavaScript to manipulate</description><dc:creator>微信公众号</dc:creator><category>Frontend</category><category>Tools</category><category>Axios</category><category>Ajax</category><category>API</category></item><item><title>Automated Testing Tool - Selenium</title><link>https://www.chenshaowen.com/en/blog/automated-testing-tool-about-selenium.html</link><pubDate>Sat, 22 Jul 2017 15:19:42 +0000</pubDate><atom:modified>Sat, 22 Jul 2017 15:19:42 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/automated-testing-tool-about-selenium.html</guid><description>1. Introduction to Selenium Selenium is an integration testing tool from Thoughtworks. At its core, Selenium Core is based on
JSUnit, written entirely in JavaScript, and can run in any browser that supports JavaScript.
1.1 Main Features and Characteristics Open source and free. Multi-browser support: Firefox, Chrome, IE, Opera — usable for compatibility testing.</description><dc:creator>微信公众号</dc:creator><category>Tools</category><category>Testing</category><category>Automation</category><category>R&amp;D</category><category>Selenium</category><category>Learning</category></item><item><title>Jenkins Integrated GitHub Development</title><link>https://www.chenshaowen.com/en/blog/jenkins-integrated-github-development.html</link><pubDate>Tue, 18 Jul 2017 21:29:41 +0000</pubDate><atom:modified>Tue, 18 Jul 2017 21:29:41 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/jenkins-integrated-github-development.html</guid><description>1. Basic Concepts Continuous Integration Continuous integration emphasizes that once developers commit new code, a build and (unit) test run immediately. From the test results we can determine whether the new code and the existing code integrate correctly. Continuous Delivery Building on continuous integration, continuous delivery deploys the integrated code</description><dc:creator>微信公众号</dc:creator><category>Tools</category><category>Development</category><category>Jenkins</category><category>GitHub</category><category>CI</category><category>DevOps</category><category>R&amp;D</category></item><item><title>Graphviz Toolkit: Drawing with DOT</title><link>https://www.chenshaowen.com/en/blog/drawing-toolkit-of-dot-using-graphviz.html</link><pubDate>Fri, 14 Jul 2017 12:32:44 +0000</pubDate><atom:modified>Fri, 14 Jul 2017 12:32:44 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/drawing-toolkit-of-dot-using-graphviz.html</guid><description>1. Introduction Graphviz is an open-source drawing toolkit developed at Bell Labs. It uses a specific DSL (domain-specific language), DOT, as its scripting language. It uses layout engines to parse DOT scripts and complete automatic layout. It supports a rich set of export formats, such as PNG, JPG, PostScript, SVG,</description><dc:creator>微信公众号</dc:creator><category>Diagram</category><category>Tools</category><category>Graphviz</category><category>Drawing</category><category>R&amp;D</category></item><item><title>Arachni Security Scanner Source Code Analysis (Part 1)</title><link>https://www.chenshaowen.com/en/blog/source-code-analysis-of-arachni-1.html</link><pubDate>Fri, 16 Jun 2017 21:02:22 +0000</pubDate><atom:modified>Fri, 16 Jun 2017 21:02:22 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/source-code-analysis-of-arachni-1.html</guid><description>Arachni is a web security vulnerability scanner built on the Ruby on Rails framework.
1. Ruby on Rails Ruby on Rails, abbreviated ROR, is a web framework that consists of two parts: the Ruby language and the Rails framework. Ruby had always been popular in Japan, until 2004, when a 26-year-old Dane, David Heinemeier Hansson, proposed the web framework Rails.</description><dc:creator>微信公众号</dc:creator><category>Tools</category><category>Security</category><category>Source Code</category><category>R&amp;D</category><category>Ruby</category></item><item><title>The manage Command in Django</title><link>https://www.chenshaowen.com/en/blog/manage-command-in-django.html</link><pubDate>Mon, 15 May 2017 21:14:48 +0000</pubDate><atom:modified>Mon, 15 May 2017 21:14:48 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/manage-command-in-django.html</guid><description>Every Django project automatically generates a manage.py file. manage.py is a simple wrapper around django-admin; its job is to put the Django Project into the sys.path directory and set the DJANGO_SETTINGS_MODULE environment variable to the current Project&amp;rsquo;s settings.py file. In other words, the difference between django-admin and manage is that</description><dc:creator>微信公众号</dc:creator><category>Django</category><category>Python</category><category>Tools</category><category>Command</category><category>R&amp;D</category></item><item><title>A Successful Git Branching Model</title><link>https://www.chenshaowen.com/en/blog/a-successful-git-branching-model.html</link><pubDate>Sun, 04 Dec 2016 20:34:03 +0000</pubDate><atom:modified>Sun, 04 Dec 2016 20:34:03 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/a-successful-git-branching-model.html</guid><description>This article is built around Git, the tool that controls all of our source code.
1. Why Git? For an in-depth discussion of the pros and cons of git versus centralized source control systems, see here. There has been far too much heated argument on this subject. As a developer, I currently prefer Git over other tools.</description><dc:creator>微信公众号</dc:creator><category>Translation</category><category>Tools</category><category>Git</category><category>R&amp;D</category><category>Branching Model</category></item><item><title>Frontend Automated Build Tool gulpjs</title><link>https://www.chenshaowen.com/en/blog/front-auto-build-tools-gulp.html</link><pubDate>Tue, 28 Jun 2016 21:59:04 +0000</pubDate><atom:modified>Tue, 28 Jun 2016 21:59:04 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/front-auto-build-tools-gulp.html</guid><description>1. Frontend Automated Build Tools When dealing with frontend scenarios, you write CSS with Less, HTML with Jade, modularize with Browserify, and add MD5 hashes to resources for non-overwriting deployments. If all this work were done purely by hand, the efficiency would be extremely low. A frontend automated build tool</description><dc:creator>微信公众号</dc:creator><category>Frontend</category><category>gulp</category><category>Tools</category><category>R&amp;D</category><category>Build</category><category>Learning</category><category>Automation</category></item></channel></rss>