[{"date":"2026-03-11","summary":"系统梳理 StackStorm、Rundeck、OpenTelemetry Collector、PagerDuty SRE Agent、LangGraph HITL 与 OpenAI Agents SDK 的官方能力边界、设计理念与可直接上手的命令示例。","tags":["SafeOps","StackStorm","Rundeck","OpenTelemetry","PagerDuty","LangGraph","OpenAI Agents SDK","AIOps","运维自动化"],"title":"运维 Agent / Runbook / AIOps 官方方案详细学习笔记","url":"https://garlicspace.com/posts/ops-agent-solution-study/"},{"date":"2026-02-23","summary":"实现GitHub推送后自动部署Hugo博客到CentOS 7 VPS的完整方案，包括Flask webhook服务、Nginx代理配置和常见问题解决","tags":["github","webhook","自动化","devops","hugo"],"title":"GitHub Webhook自动部署Hugo博客到VPS","url":"https://garlicspace.com/posts/github-webhook-auto-deploy/"},{"date":"2026-02-18","summary":"节点流量问题：限速 + Telegram 告警 + 自动停机守护 - 节前发现 VPS 上运行节点，流量忽然增加，紧急增加了限速。整理下如何用 Linux tc 做限速、如何做月流量守护、如何通过 Telegram 实时接收告警。","tags":["linux","tc","qos","network","telegram"],"title":"节点流量问题：限速 + Telegram 告警 + 自动停机守护","url":"https://garlicspace.com/posts/node-qos/"},{"date":"2026-02-01","summary":"听得见声音，却看不到影子。献给我的姥爷谢自熬，和那个年代所有沉默的地牛。","tags":["家族","历史","长武","远征军","驼峰航线"],"title":"地牛：听见黄土下的回响","url":"https://garlicspace.com/posts/earth-ox/"},{"date":"2025-08-24","summary":"CentOS 7 和 Ubuntu 系统升级 OpenSSH 的完整指南","tags":["openssh","security","linux"],"title":"升级 OpenSSH","url":"https://garlicspace.com/posts/%E5%8D%87%E7%BA%A7openssh/"},{"date":"2025-01-22","summary":"centos7 yum 源失效 - centos7 yum 源已经失效, 可以通过下面指令更换默认配置，baseurl中 mirror.* 替换为 vault*","tags":["linux"],"title":"centos7 yum 源失效","url":"https://garlicspace.com/posts/centos7-yum-%E6%BA%90%E5%A4%B1%E6%95%88/"},{"date":"2025-01-06","summary":"NGINX Configuration for Multiple Certificates - NGINX typically supports two scenarios for configuring multiple certificates:","tags":["nginx","ssl","ai"],"title":"NGINX Configuration for Multiple Certificates","url":"https://garlicspace.com/posts/nginx-configuration-for-multiple-certificates/"},{"date":"2025-01-06","summary":"nginx Multi-Certificates - * * *","tags":["nginx","tls","ssl","ai"],"title":"nginx Multi-Certificates","url":"https://garlicspace.com/posts/nginx-multi-certificates/"},{"date":"2024-12-22","summary":"Build the Latest Nginx with Automation - Nginx is one of the most popular high-performance web servers and reverse proxies in the modern internet. To maximize its capabilities, we","tags":["nginx","ssl","ai"],"title":"Build the Latest Nginx with Automation","url":"https://garlicspace.com/posts/build-the-latest-nginx-with-automation/"},{"date":"2024-12-22","summary":"Simplify SSL/TLS Certificate Management - In modern network communication, SSL/TLS certificates are essential for ensuring secure data transmission. However, managing certificate c","tags":["tls","ssl","ai"],"title":"Simplify SSL/TLS Certificate Management","url":"https://garlicspace.com/posts/simplify-ssl-tls-certificate-management/"},{"date":"2024-12-22","summary":"多功能 SSL/TLS 证书生成工具 - 在当今的网络通信中，SSL/TLS 证书是确保数据传输安全的关键元素。然而，面对不同的加密算法和标准（如国际上的 RSA 和 ECC，以及中国的国密 SM2），生成和管理证书链往往是一项复杂的任务。为了简化这一过程，开发了一个高效、灵活的开源工具——multicertgen。","tags":["tls","ssl","networking"],"title":"多功能 SSL/TLS 证书生成工具","url":"https://garlicspace.com/posts/%E5%A4%9A%E5%8A%9F%E8%83%BD-ssl-tls-%E8%AF%81%E4%B9%A6%E7%94%9F%E6%88%90%E5%B7%A5%E5%85%B7/"},{"date":"2024-12-22","summary":"自动构建最新版本的 Nginx - Nginx 是现代互联网中最受欢迎的高性能 Web 服务器和反向代理服务器之一。为了充分发挥其性能，我们通常需要使用最新版本的 Nginx，并静态链接最新的依赖库（如 PCRE2、zlib 和 OpenSSL）。然而，手动下载和编译这些依赖库既耗时又容易出错。","tags":["linux","nginx","tls","ssl","ai"],"title":"自动构建最新版本的 Nginx","url":"https://garlicspace.com/posts/%E8%87%AA%E5%8A%A8%E6%9E%84%E5%BB%BA%E6%9C%80%E6%96%B0%E7%89%88%E6%9C%AC%E7%9A%84-nginx/"},{"date":"2024-12-08","summary":"Linux chroot Environment: Principles and Detailed Applications - In Linux system management, chroot is a powerful tool that changes the root directory for a process, enabling fil","tags":["linux","ai"],"title":"Linux chroot Environment: Principles and Detailed Applications","url":"https://garlicspace.com/posts/linux-chroot-environment-principles-and-detailed-applications/"},{"date":"2024-12-08","summary":"Linux chroot 环境：原理与应用详解 - 在 Linux 系统管理中，chroot 可以通过改变程序的根目录来实现文件系统的隔离。在本文中，我们将详细介绍 chroot 的原理，并通过一个模拟 Postfix 调用 SASL 的实战演示，帮助你掌握如何正确配置和验证 chroot 环境。","tags":["linux","ai"],"title":"Linux chroot 环境：原理与应用详解","url":"https://garlicspace.com/posts/linux-chroot-%E7%8E%AF%E5%A2%83%E5%8E%9F%E7%90%86%E4%B8%8E%E5%BA%94%E7%94%A8%E8%AF%A6%E8%A7%A3/"},{"date":"2024-12-03","summary":"Detailed Configuration Guide for the NGINX Directive ssl_password_file - Title: Using ssl_password_file in NGINX for SSL/TLS Private Key Management","tags":["nginx","tls","ssl","ai"],"title":"Detailed Configuration Guide for the NGINX Directive ssl_password_file","url":"https://garlicspace.com/posts/detailed-configuration-guide-for-the-nginx-directive-ssl_password_file/"},{"date":"2024-12-03","summary":"NGINX 指令 ssl_password_file 配置详解 - ssl_password_file 是 NGINX 中的一个指令，用于指定一个包含密码的文件，这个文件用于提供 SSL/TLS 私钥的密码。该指令在 NGINX 启动时会读取该文件，并用于加载私钥文件时解锁加密的私钥。如果私钥是加密的，那么 NGINX 需要密码才能使用它，密码错误会导致","tags":["nginx","tls","ssl"],"title":"NGINX 指令 ssl_password_file 配置详解","url":"https://garlicspace.com/posts/nginx-%E6%8C%87%E4%BB%A4-ssl_password_file-%E9%85%8D%E7%BD%AE%E8%AF%A6%E8%A7%A3/"},{"date":"2024-11-24","summary":"NGINX 中HTTP请求大小相关配置及解决方案-1 - NGINX中收到HTTP请求大小相关的错误,以下典型错误及相关解决方案。","tags":["nginx"],"title":"NGINX 中HTTP请求大小相关配置及解决方案-1","url":"https://garlicspace.com/posts/nginx-%E4%B8%ADhttp%E8%AF%B7%E6%B1%82%E5%A4%A7%E5%B0%8F%E7%9B%B8%E5%85%B3%E9%85%8D%E7%BD%AE%E5%8F%8A%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88-1/"},{"date":"2024-11-24","summary":"Troubleshooting HTTP 400/414/413 Errors in NGINX: A Complete Guide - Here is a sample nginx.conf configuration file:","tags":["nginx"],"title":"Troubleshooting HTTP 400/414/413 Errors in NGINX: A Complete Guide","url":"https://garlicspace.com/posts/common-nginx-http-request-size-errors-and-their-solutions/"},{"date":"2024-11-19","summary":"HTTP cookie httponly secure - rfc6265中描述","tags":[],"title":"HTTP cookie httponly secure","url":"https://garlicspace.com/posts/http-cookie-httponly-secure/"},{"date":"2024-11-14","summary":"shell中如果定义多行的字符串可以使用heredoc\n先检查一下当前使用shell\n1 2 echo $0 -bash heredoc 是一种在 Shell 脚本、编程语言（例如 Bash、PHP、Ruby 等）中，用来定义多行字符串的方法。它可以使代码中的字符串定义更加清晰和可读，尤其适用于需要定义包含多行内容的文 …","tags":[],"title":"shell heredoc","url":"https://garlicspace.com/posts/shell-heredoc/"},{"date":"2024-10-27","summary":"^@与控制字符 - 在应用服务日志中看到了服务器日志记录错误NumberFormatExeception input string ^@^@^@^@，对于 ^@ 这个控制字符没有什么映像了于是vi打开一个临时文件 ctrl + V, ctrl + @ 输入到文件中然后hexdump 看了一下二进制内容发现是","tags":["ai"],"title":"^@与控制字符","url":"https://garlicspace.com/posts/%E4%B8%8E%E6%8E%A7%E5%88%B6%E5%AD%97%E7%AC%A6/"},{"date":"2024-10-12","summary":"intermediate CA certificate 中间证书 - 中间证书的使用是随着公共密钥基础设施（PKI）的发展而逐渐普及。","tags":["ssl","ai"],"title":"intermediate CA certificate 中间证书","url":"https://garlicspace.com/posts/intermediate-ca-certificate-%E4%B8%AD%E9%97%B4%E8%AF%81%E4%B9%A6/"},{"date":"2024-07-03","summary":"证书common name - 项目自签名证书，common name 超过64个字节报错","tags":["ssl"],"title":"证书common name","url":"https://garlicspace.com/posts/%E8%AF%81%E4%B9%A6common-name/"},{"date":"2024-06-23","summary":"linux arp 参数整理 – arp_filter - arp_filter：","tags":["linux","networking"],"title":"linux arp 参数整理 – arp_filter","url":"https://garlicspace.com/posts/linux-arp-%E5%8F%82%E6%95%B0%E6%95%B4%E7%90%86-arp_filter/"},{"date":"2024-06-22","summary":"linux arp 参数整理 - 在 Linux 中，有多个内核参数可以控制 ARP（地址解析协议）的行为。这些参数可以通过 /proc/sys/net/ipv4/conf/*/ 目录下的文件来配置，或者使用 sysctl 命令来设置。以下是一些常用的 ARP 内核参数及其含义：","tags":["linux","networking"],"title":"linux arp 参数整理","url":"https://garlicspace.com/posts/linux-arp-%E5%8F%82%E6%95%B0%E6%95%B4%E7%90%86-1/"},{"date":"2024-06-02","summary":"负载均衡 - In computing, load balancing is the process of distributing a set of tasks over a set of resources computing units, with the aim of making their overall processing mor","tags":["networking","ai"],"title":"负载均衡","url":"https://garlicspace.com/posts/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/"},{"date":"2024-05-05","summary":"VLAN - A virtual local area network VLAN is any broadcast domain that is partitioned and isolated in a computer network at the data link layer OSI layer 2.23 In thi","tags":["ai"],"title":"VLAN","url":"https://garlicspace.com/posts/vlan/"},{"date":"2024-04-25","summary":"C语言宏参数转换为字符串 - 用宏定义来定义一个SQL语句， 用来指定字段的长度。那就拼接一下","tags":["ai"],"title":"C语言宏参数转换为字符串","url":"https://garlicspace.com/posts/c%E8%AF%AD%E8%A8%80%E5%AE%8F%E5%8F%82%E6%95%B0%E8%BD%AC%E6%8D%A2%E4%B8%BA%E5%AD%97%E7%AC%A6%E4%B8%B2/"},{"date":"2024-04-13","summary":"conflicts with file from package kernel-debuginfo - dnf upgrade-minimal --security","tags":["linux","kernel","ai"],"title":"conflicts with file from package kernel-debuginfo","url":"https://garlicspace.com/posts/conflicts-with-file-from-package-kernel-debuginfo/"},{"date":"2024-04-01","summary":"案例学习-Sysbench压测故障 - 故障源于知识星球的一个案例：","tags":["docker"],"title":"案例学习-Sysbench压测故障","url":"https://garlicspace.com/posts/%E6%A1%88%E4%BE%8B%E5%AD%A6%E4%B9%A0-sysbench%E5%8E%8B%E6%B5%8B%E6%95%85%E9%9A%9C/"},{"date":"2024-03-18","summary":"问题： 给定一个整数数组，编写一个函数，返回从左到右读取数组时出现多次的第一个整数。数组元素取值范围是整数1到n， 数组长度为n.\n比较特殊情况\n[2,3,4,2,3,5] 返回2\n[2,3,4,4,2,5] 返回4， 虽然2也是重复数字但是再2之后。\n","tags":[],"title":"LeetCode - First Duplicate Value","url":"https://garlicspace.com/posts/leetcode-first-duplicate-value/"},{"date":"2024-03-17","summary":"MQTT - MQTT Message Queuing Telemetry Transport.它是一种轻量级的发布-订阅网络协议，用于在设备之间传输消息。 MQTT 专为硬件资源有限或网络带宽有限的远程位置连接而设计，非常适合 machine-to-machine M2M 通信和物联网 IoT 应用。","tags":["networking"],"title":"MQTT","url":"https://garlicspace.com/posts/mqtt/"},{"date":"2024-02-16","summary":"curl support TLCP using TASSL - 传输层密码协议TLCP 对应 TLS协议， 在GB/T 38636-2020规范中定义。支持国密sm2, sm3, sm4密钥套件。增加加密证书， 6.4.5.3章节中提到 选择ECC, ECDHE算法，密钥交换算法使用用加密证书公钥。","tags":["linux","tls","ssl","ai"],"title":"curl support TLCP using TASSL","url":"https://garlicspace.com/posts/curl-support-tlcp-using-tassl/"},{"date":"2024-02-16","summary":"http3 - nginx with quictls - nginx 从1.25开始支持QUIC和http3","tags":["nginx","tls","ssl"],"title":"http3 - nginx with quictls","url":"https://garlicspace.com/posts/http3-nginx-with-quictls/"},{"date":"2024-01-08","summary":"问题： Given an array arr[] of n integers, construct a Product Array prod[] (of the same size) such that prod[i] is equal to the product of all the elements of …","tags":[],"title":"Product of Array Except Self","url":"https://garlicspace.com/posts/product-of-array-except-self/"},{"date":"2024-01-07","summary":"io_uring echo-server - io_uring是Linux特有的异步I/O API。io_uring的名称来自用户空间和内核空间之间共享的环形缓冲区。在内核和用户空间之间进行通信使用环形缓冲区作为主要的通信模式。这种思想在业务系统中还是挺常见的： 比如用MQ、Kafka消息队列推送信息。一个接收队列， 一个发送队列，另外设计上也有Acto","tags":["linux","kernel","ai"],"title":"io_uring echo-server","url":"https://garlicspace.com/posts/io_uring-echo-server/"},{"date":"2024-01-01","summary":"如何判断C struct中是否存在某一成员，最开始想法是通过offsetof宏定义\n1 2 #define offsetof(st, m) \\ ((size_t)\u0026amp;(((st *)0)-\u0026gt;m)) C语言的offsetof()宏是ANSI C标准库中的一个特性，位于stddef.h头文件中。它用于计算给定结 …","tags":[],"title":"C struct检查成员是否存在","url":"https://garlicspace.com/posts/c-struct%E6%A3%80%E6%9F%A5%E6%88%90%E5%91%98%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8/"},{"date":"2023-12-11","summary":"SNI - SNI是TLS协议扩展， 在握手的开始标识其尝试连接的主机名， 当多个HTTPS服务部署在同一IP地址上，客户端就可以通过这个标识指定它将使用哪一个服务， 同时服务端也无需使用相同的证书，它在概念上相当于HTTP/1.1基于名称的虚拟主机。SNI扩展最早在2003年的RFC 3546中出现。","tags":["nginx","tls","ssl"],"title":"SNI","url":"https://garlicspace.com/posts/sni/"},{"date":"2023-11-26","summary":"LeetCode-longest-peak - Given an array arr with N elements, the task is to find out the longest sub-array which has the shape of a mountain","tags":["ai"],"title":"LeetCode-longest-peak","url":"https://garlicspace.com/posts/leetcode-longest-peak/"},{"date":"2023-10-21","summary":"systemctl 启动服务缓慢 - 使用systemd配置服务启动慢","tags":["linux","ai"],"title":"systemctl 启动服务缓慢","url":"https://garlicspace.com/posts/systemctl-%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1%E7%BC%93%E6%85%A2/"},{"date":"2023-09-16","summary":"linux sendfile - 使用c语言实现一下文件复制功能：","tags":["linux","ai"],"title":"linux sendfile","url":"https://garlicspace.com/posts/linux-sendfile/"},{"date":"2023-08-19","summary":"linux 生成指定大小文件 - linux生成指定大小文件常用的几个命令：","tags":["linux","ai"],"title":"linux 生成指定大小文件","url":"https://garlicspace.com/posts/linux-%E7%94%9F%E6%88%90%E6%8C%87%E5%AE%9A%E5%A4%A7%E5%B0%8F%E6%96%87%E4%BB%B6/"},{"date":"2023-08-09","summary":"getopt_long可以用来解析命令行参数，也可以进行参数解析。例如\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 …","tags":[],"title":"getopt_long","url":"https://garlicspace.com/posts/getopt_long/"},{"date":"2023-08-01","summary":"A kernel debugger in Python: drgn - 原文链接：","tags":["linux","kernel"],"title":"A kernel debugger in Python: drgn","url":"https://garlicspace.com/posts/a-kernel-debugger-in-python-drgn/"},{"date":"2023-07-30","summary":"问题： Given an m x n matrix, return all elements of the matrix in spiral order.Input:\n1 2 3 4 5 array = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, …","tags":[],"title":"leetcode – spiral matrix","url":"https://garlicspace.com/posts/leetcode-spiral-matrix/"},{"date":"2023-07-27","summary":"nginx realserver 使用域名方式功能分析 - nginx使用域名方式访问RS的一些方案整理：","tags":["nginx","ai"],"title":"nginx realserver 使用域名方式功能分析","url":"https://garlicspace.com/posts/nginx-realserver-%E4%BD%BF%E7%94%A8%E5%9F%9F%E5%90%8D%E6%96%B9%E5%BC%8F%E5%8A%9F%E8%83%BD%E5%88%86%E6%9E%90/"},{"date":"2023-06-06","summary":"SNMP - 全称为Simple Network Management Protocol（简单网络管理协议），是一种广泛使用的网络管理协议，允许管理员监视和管理网络设备，如路由器、交换机、服务器和打印机。它是一种应用层协议，促进网络设备与集中的网络管理系统之间的管理信息交换。","tags":["networking"],"title":"SNMP","url":"https://garlicspace.com/posts/snmp/"},{"date":"2023-05-16","summary":"linux sudoers - linux安装完有些系统会默认禁用root登录， 所以我习惯创建一个普通用户然后配置sudoers登录。","tags":["linux"],"title":"linux sudoers","url":"https://garlicspace.com/posts/linux-sudoers/"},{"date":"2023-05-11","summary":"Linux hostname - linux下设置hostname有以下两个命令","tags":["linux","kernel","networking"],"title":"Linux hostname","url":"https://garlicspace.com/posts/linux-hostname/"},{"date":"2023-04-24","summary":"flex和bison是常用的词法分析和语法分析工具， flex可以将源文本以指定个规则识别为单词， bison可以将这些识别出来的单词进行结构化处理。下面可以通过一个bind9 config 解析程序进行说明。\n","tags":[],"title":"用 flex和bison 解析配置文件","url":"https://garlicspace.com/posts/%E7%94%A8-flex%E5%92%8Cbison-%E8%A7%A3%E6%9E%90%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/"},{"date":"2023-04-09","summary":"SSL证书与私钥的编码格式和文件扩展名 - \u003c!--more--\u003e","tags":["ssl"],"title":"SSL证书与私钥的编码格式和文件扩展名","url":"https://garlicspace.com/posts/ssl%E8%AF%81%E4%B9%A6%E4%B8%8E%E7%A7%81%E9%92%A5%E7%9A%84%E7%BC%96%E7%A0%81%E6%A0%BC%E5%BC%8F%E5%92%8C%E6%96%87%E4%BB%B6%E6%89%A9%E5%B1%95%E5%90%8D/"},{"date":"2023-03-30","summary":"Emiller’s Advanced Topics In Nginx Module Development - 原文链接","tags":["nginx","ai"],"title":"Emiller’s Advanced Topics In Nginx Module Development","url":"https://garlicspace.com/posts/emillers-advanced-topics-in-nginx-module-development/"},{"date":"2023-03-09","summary":"X.509 certificates - X.509是定义的一个公钥证书格式标准。 RFC 5280 详细描述公钥证书，包括它们的字段和扩展名。","tags":["ssl"],"title":"X.509 certificates","url":"https://garlicspace.com/posts/x-509-certificates/"},{"date":"2023-03-05","summary":"Emiller’s Guide To Nginx Module Development - 原文链接：","tags":["nginx","networking","ai"],"title":"Emiller’s Guide To Nginx Module Development","url":"https://garlicspace.com/posts/emillers-guide-to-nginx-module-development/"},{"date":"2023-01-30","summary":"前一阵偶尔看到一个介绍驼峰航线的视频，想起了我的姥爷。\n1942年5月，日军切断滇缅公路， 这是中国最后一条陆上联外交通线，中美两国被迫在印度东北部的阿萨姆邦和中国云南昆明之间开辟了一条转运战略物资的空中通道，这条空中通道就叫驼峰航线。\n","tags":[],"title":"The Hump","url":"https://garlicspace.com/posts/the-hump/"},{"date":"2023-01-29","summary":"Why does calloc exist? - 原文链接：","tags":[],"title":"Why does calloc exist?","url":"https://garlicspace.com/posts/why-does-calloc-exist/"},{"date":"2023-01-23","summary":"问题： An array is monotonic if it is either monotone increasing or monotone decreasing.\nAn array nums is monotone increasing if for all i \u0026lt;= j, nums[i] \u0026lt;= …","tags":[],"title":"leetcode - Monotonic Array","url":"https://garlicspace.com/posts/leetcode-monotonic-array/"},{"date":"2022-12-03","summary":"Linux sed 中的\u0026 - 一次使用sed 替换操作，替换后的字符串包含 \u0026，替换文本如下","tags":["linux","ai"],"title":"Linux sed 中的\u0026","url":"https://garlicspace.com/posts/linux-sed-%E4%B8%AD%E7%9A%84/"},{"date":"2022-12-03","summary":"ubuntu 忘记密码 - \u003c!--more--\u003e","tags":["linux","ai"],"title":"ubuntu 忘记密码","url":"https://garlicspace.com/posts/ubuntu-%E5%BF%98%E8%AE%B0%E5%AF%86%E7%A0%81/"},{"date":"2022-11-29","summary":"window下查找监听端口进程并关闭 - 测试mock服务程序在windows下运行，强制关闭后终端cmd后再次启动时发现， 端口已经被占用。","tags":["ai"],"title":"window下查找监听端口进程并关闭","url":"https://garlicspace.com/posts/window%E4%B8%8B%E6%9F%A5%E6%89%BE%E7%9B%91%E5%90%AC%E7%AB%AF%E5%8F%A3%E8%BF%9B%E7%A8%8B%E5%B9%B6%E5%85%B3%E9%97%AD/"},{"date":"2022-11-15","summary":"Nginx Development guide - 这篇文章来自nginx document /","tags":["nginx","ai"],"title":"Nginx Development guide","url":"https://garlicspace.com/posts/nginx-development-guide/"},{"date":"2022-05-08","summary":"项目中使用python tuple时如果是一个元素一定要增加一个逗号,使用python3看下输出。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 \u0026gt;\u0026gt;\u0026gt; t(0) Traceback (most recent call last): File …","tags":[],"title":"python tuple 一个元素时需要增加逗号","url":"https://garlicspace.com/posts/python-tuple%E4%B8%80%E4%B8%AA%E5%85%83%E7%B4%A0%E9%9C%80%E8%A6%81%E5%A2%9E%E5%8A%A0%E9%80%97%E5%8F%B7/"},{"date":"2022-05-08","summary":"单元测试 - 单元测试的目的并不是查找bug，而是帮助我们更好的设计我们的代码，如何合理的来拆分我们的代码。","tags":["linux"],"title":"单元测试","url":"https://garlicspace.com/posts/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/"},{"date":"2022-05-04","summary":"问题： 给定一系列正整数，代表硬币的面值，找到无法从这些整数组连续组合成的最小值。比如 coins=[1,2,5], 最小不能组合成的值为4.\n解答： 如果下一个整数大于前面所有值的累积和 + 1，那么就知道最小值，如果能被组合范围[0, sum], 下一个数据为y， 如果能构造出联系数据 sum+1 要在 …","tags":[],"title":"Non-Constructible Change","url":"https://garlicspace.com/posts/non-constructible-change/"},{"date":"2022-05-01","summary":"Debugging NGINX - 这篇文章来自nginx document","tags":["nginx"],"title":"Debugging NGINX","url":"https://garlicspace.com/posts/debugging-nginx/"},{"date":"2022-04-30","summary":"mysql error 1364 Field doesn't have a default values - 前一阵在做一个系统迁移工作， mysql数据库版本进行了升级，","tags":[],"title":"mysql error 1364 Field doesn't have a default values","url":"https://garlicspace.com/posts/mysql-error-1364-field-doesnt-have-a-default-values/"},{"date":"2022-04-05","summary":"查看分支 1 git branch -av 导出分支 1 2 git remote add origin ssh://git@ip:port/branch.git git checkout -b localbranch origin/remotebranch 稀疏导出 1 2 3 4 5 6 git init …","tags":[],"title":"git 常用命令","url":"https://garlicspace.com/posts/git-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/"},{"date":"2022-04-01","summary":"最近工作中涉及到一些负载均衡一些知识这里今天这篇文章是F5的 Message-Based Load Balancing。 这是2009年发布的一篇文章，后续F5已经建议从MBLB迁移到MRP功能模块。\n","tags":[],"title":"Message-Based Load Balancing","url":"https://garlicspace.com/posts/message-based-load-balancing/"},{"date":"2022-03-30","summary":"问题 循环赛每个队对战所有其他对手， 胜利者记3分， 失败者记1分. 两个数组做为输入， competitions，存放主场队和客场队， results存放结果， 1表示主队获胜， 0表示客队获胜。返回分数最高的队伍。\n","tags":[],"title":"Tournament winner","url":"https://garlicspace.com/posts/tournament-winner/"},{"date":"2022-03-21","summary":" putty 使用的是putty进行访问，可以使用gruvbox 提供的配色访问进行调整。\n可以使用下面链接进去：\n1 https://github.com/morhetz/gruvbox-contrib/tree/master/putty 其他工具 如果使用是其他工具也可以找到对应的工具\n","tags":[],"title":"vim putty gruvbox","url":"https://garlicspace.com/posts/vim-putty-gruvbox/"},{"date":"2022-03-19","summary":"ISO8583协议 - 在银行卡支付领域，经常提到“8583”， 他是金融机构中银行卡交易使用的一种内部协议。使用场景主要是终端如POS, ATM等金融终端到银行收单系统， 以及银行卡系统间。协议出现时期， 网络主要还是PSTN网络，电话拨号方式接入方式。考虑到带宽限制以及交易实时性要求，所以结构设计很紧凑，报文长度是1K左右，一般不会大于2K， 涉及数字的","tags":["networking"],"title":"ISO8583协议","url":"https://garlicspace.com/posts/iso8583%E5%8D%8F%E8%AE%AE/"},{"date":"2022-02-03","summary":"centos8 yum 相关国内镜像仓库弃用deprecated - 今天centos8使用yum安装软件时报错。","tags":[],"title":"centos8 yum 相关国内镜像仓库弃用(deprecated)","url":"https://garlicspace.com/posts/centos8-yum-%E7%9B%B8%E5%85%B3%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F%E4%BB%93%E5%BA%93%E5%BC%83%E7%94%A8deprecated/"},{"date":"2022-01-02","summary":"服务器（centos8）在用户登录的时候会出现一些登录日志。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 example.com systemd[1]: Started …","tags":[],"title":"centos8 过滤 syslog信息","url":"https://garlicspace.com/posts/centos8-%E8%BF%87%E6%BB%A4-syslog%E4%BF%A1%E6%81%AF/"},{"date":"2021-10-25","summary":"Pointer 和 references\n主要区别 reference：总代表一个对象， 没有null reference；pointer则没有限制，可以为null poiner可以被重新赋值； reference不可以被重新赋值。 应用场景 如果在不同时间指向不同对象则使用pointer， 如果一旦代表该对象就不能改 …","tags":[],"title":"C++ pointers 和reference","url":"https://garlicspace.com/posts/c-pointers-%E5%92%8Creference/"},{"date":"2021-10-16","summary":"这篇文章 What every programmer should know about memory, Part 1\n是出自lwn.net 作者 Ulrich Drepper\n总线结构 常见的商用计算机结构：\n北桥南桥结构： CPU通过FSB连接到北桥， 北桥包含内存控制器，通过不同内存控制器链接不同的RAM，如 …","tags":[],"title":"What every programmer should know about memory，Part 1","url":"https://garlicspace.com/posts/what-every-programmer-should-know-about-memorypart-1/"},{"date":"2021-08-28","summary":"ACME 证书自动化管理 - 在搭建blog使用https服务，需要申请配置一个域名证书，使用了Let’s Encrypt申请了免费的https证书。","tags":["tls","ssl"],"title":"ACME 证书自动化管理","url":"https://garlicspace.com/posts/acme-%E8%AF%81%E4%B9%A6%E8%87%AA%E5%8A%A8%E5%8C%96%E7%AE%A1%E7%90%86/"},{"date":"2021-08-24","summary":"docker 安装 Wordpress 及更新 - 今天登录到博客提示需要升级php，更新了下镜像顺便把之前搭建的步骤整理了一下。","tags":["docker","ssl"],"title":"docker 安装 Wordpress 及更新","url":"https://garlicspace.com/posts/docker-%E5%AE%89%E8%A3%85-wordpress-%E5%8F%8A%E6%9B%B4%E6%96%B0/"},{"date":"2021-06-11","summary":"leetcode - Squares of a Sorted Array - Given an integer array nums sorted in non-decreasing order, return _an array of the squares of each number sorted in non-decreasing","tags":["ai"],"title":"leetcode - Squares of a Sorted Array","url":"https://garlicspace.com/posts/leetcode-squares-of-a-sorted-array/"},{"date":"2021-05-18","summary":"Leetcode-Is Subsequence - Given two strings s and t, check if s is a subsequence of t","tags":["ai"],"title":"Leetcode-Is Subsequence","url":"https://garlicspace.com/posts/leetcode-is-subsequence/"},{"date":"2021-05-12","summary":"DeFi - DeFi：Decentralized finance 是一种基于block-chain的金融形式。他不依赖于券商，银行，交易所等中心话的机构。","tags":["ai"],"title":"DeFi","url":"https://garlicspace.com/posts/defi/"},{"date":"2021-05-10","summary":"LeetCode-3Sum - Given an integer array nums, return all the triplets numsi, numsj, numsk such that i != j, i != k, and j != k, and numsi + numsj + numsk == 0","tags":["ai"],"title":"LeetCode-3Sum","url":"https://garlicspace.com/posts/leetcode-3-sum/"},{"date":"2021-05-10","summary":"LeetCode-Two Sum - Given an array of integers nums and an integer target, return _indices of the two numbers such that they add up to target","tags":["ai"],"title":"LeetCode-Two Sum","url":"https://garlicspace.com/posts/leetcode-two-sum/"},{"date":"2021-05-07","summary":"Vagrant 创建Centos8 环境 - 使用Vagrant重新搭建一个测试环境，只需要简单几步就可以启动一个测试环境。","tags":["docker","networking"],"title":"Vagrant 创建Centos8 环境","url":"https://garlicspace.com/posts/vagrant-%E5%88%9B%E5%BB%BAcentos8-%E6%B5%8B%E8%AF%95%E7%8E%AF%E5%A2%83/"},{"date":"2021-04-27","summary":"Effective Go-5 - Do not communication by sharing memory; instead,share memory by communicating","tags":["ai"],"title":"Effective Go-5","url":"https://garlicspace.com/posts/effective-go-5/"},{"date":"2021-04-19","summary":"Interfaces and other types Interface Sequence这个例子，调用sort package中的方法，对于集合要实现sort的接口：Len(), Less(i,j int) bool 和 Swap(i,j int)。Sequence同时通过String()对集合内容进行格式化。\n","tags":[],"title":"Effective Go-4","url":"https://garlicspace.com/posts/effective-go-4/"},{"date":"2021-04-15","summary":"Data 分配\n通过new和make分配空间：\nnew分配空间，返回指针 make可以进行生成slices，maps，channels，返回类型 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 package data_test …","tags":[],"title":"Effective Go-3","url":"https://garlicspace.com/posts/effective-go-3/"},{"date":"2021-04-07","summary":"分号 若在一行最后一个标识符为以下类型\n数字 字符串常量 特殊标识符号；break continue fallthrough return ++ \u0026ndash; ) } 词法分析器会在标识符后添加分号， 与C不同GO很多地方都省略分号。\n","tags":[],"title":"Effective Go-2","url":"https://garlicspace.com/posts/effective-go-2/"},{"date":"2021-04-01","summary":"LeetCode-Palindrome Pairs Solution - Given a list of unique words, return all the pairs of the _distinct_ indices i, j in the given list, so that the concatenation of","tags":["ssl","ai"],"title":"LeetCode-Palindrome Pairs  Solution","url":"https://garlicspace.com/posts/leetcode-palindrome-pairs-solution/"},{"date":"2021-03-30","summary":"查询和清除文件系统缓存 - 为了减少磁盘I/O，加快读写速度，Linux内核使用文件系统的Cache，Page Cache。","tags":["linux","kernel","ai"],"title":"查询和清除文件系统缓存","url":"https://garlicspace.com/posts/%E6%9F%A5%E8%AF%A2%E5%92%8C%E6%B8%85%E9%99%A4%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E7%BC%93%E5%AD%98/"},{"date":"2021-03-24","summary":"昨天正在听一位老师的英语的直播课， 当时她正在用影片的片段讲解英文听力课，讲到一半的时候，直播中断了。 显示“​stream suspended for policy violations”\n后来查了下资料才知道， 平台通过Connent ID系统的运作方式来识别和管理上传的视频和音频版权。 千亿美金的YouTube： …","tags":[],"title":"视频的版权识别与管理","url":"https://garlicspace.com/posts/%E8%A7%86%E9%A2%91%E7%9A%84%E7%89%88%E6%9D%83%E8%AF%86%E5%88%AB%E4%B8%8E%E7%AE%A1%E7%90%86/"},{"date":"2021-03-07","summary":"Effective Go - 1 - 为了减少格式化问题带来的争议， 可以使用 gofmt程序对源码进行格式化。","tags":["ai"],"title":"Effective Go - 1","url":"https://garlicspace.com/posts/effective-go-1/"},{"date":"2021-03-07","summary":"LeetCode-Word Search II Solution - Given an m x n board of characters and a list of strings words, return _all words on the board","tags":["ai"],"title":"LeetCode-Word Search II  Solution","url":"https://garlicspace.com/posts/leetcode-word-search-ii-solution/"},{"date":"2021-03-06","summary":"Linux跨文件系统的文件夹和文件映射关系 - Everything is a file 是Unix的设计理念，由其派生的Linux也如此。","tags":["linux","kernel"],"title":"Linux跨文件系统的文件夹和文件映射关系","url":"https://garlicspace.com/posts/linux%E8%B7%A8%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9%E5%92%8C%E6%96%87%E4%BB%B6%E6%98%A0%E5%B0%84%E5%85%B3%E7%B3%BB/"},{"date":"2021-03-02","summary":"mount操作导致磁盘数据丢失 - - cenos7X86_64 + openssh","tags":["linux","ai"],"title":"mount操作导致磁盘数据丢失","url":"https://garlicspace.com/posts/mount%E6%93%8D%E4%BD%9C%E5%AF%BC%E8%87%B4%E7%A3%81%E7%9B%98%E6%95%B0%E6%8D%AE%E4%B8%A2%E5%A4%B1/"},{"date":"2021-02-28","summary":"前些天看到用esp8266开发的小盒子，按照教程https://www.instructables.com/3D-Printer-Monitor-Wemos-D1-Mini-ESP8266/操作了一下。\n","tags":[],"title":"DIY esp8266 小盒子","url":"https://garlicspace.com/posts/diy%E5%B0%8F%E7%9B%92%E5%AD%90/"},{"date":"2021-02-27","summary":"LeetCode-Maximum XOR of Two Numbers in an Array - Given an integer array nums, return _the maximum result of numsi XOR numsj_, where 0 ≤ i ≤ j \u003c n","tags":["ai"],"title":"LeetCode-Maximum XOR of Two Numbers in an Array","url":"https://garlicspace.com/posts/maximum-xor-of-two-numbers-in-an-array/"},{"date":"2021-02-24","summary":"比特币，区块链与自由软件 - 这篇文章 Open source money: Bitcoin, blockchain, and free software","tags":["networking","ai"],"title":"比特币，区块链与自由软件","url":"https://garlicspace.com/posts/%E5%BC%80%E6%BA%90btc%E5%8C%BA%E5%9D%97%E9%93%BE%E4%B8%8E%E8%87%AA%E7%94%B1%E8%BD%AF%E4%BB%B6/"},{"date":"2021-02-21","summary":"开源许可证 - 最近在学习python 使用到在操作package的时候，有一个步骤就是要增加一个“LICENSE”文件。","tags":["ai"],"title":"开源许可证","url":"https://garlicspace.com/posts/%E5%BC%80%E6%BA%90%E8%AE%B8%E5%8F%AF%E8%AF%81/"},{"date":"2021-02-17","summary":"python语言学习 - 最新学习极客时间物联网课程中，老师使用的语言是python。之前也没有系统学习过，利用假期，跟着两个极客时间专栏学习了一下python 。","tags":["linux"],"title":"python语言学习","url":"https://garlicspace.com/posts/python%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0/"},{"date":"2021-02-08","summary":"python 的 name - 这篇文章The Reason Behind if name == ‘main’ in Python 是出自med","tags":["python"],"title":"python 的 __name__","url":"https://garlicspace.com/posts/python-if-__name__-__main__/"},{"date":"2021-02-03","summary":"同一个excel文件，分配到各组填写， 最后统一汇总成一个文档反馈。\n环境 windows10 python3.7 + openpyxl 目标 in目录存放各个组填写的文档 out目录存放合并后的结果文件 实现 表格 序号 产品 信息 反馈1 反馈2 01 产品1 X 00000 999999 02 产品2 X …","tags":[],"title":"python将多个excel合并","url":"https://garlicspace.com/posts/python%E5%B0%86%E5%A4%9A%E4%B8%AAexcel%E5%90%88%E5%B9%B6/"},{"date":"2021-01-27","summary":"LeetCode- Add and Search Word - Data structure design Solution - leetcode 211 Trie的添加及搜索","tags":["ai"],"title":"LeetCode-  Add and Search Word - Data structure design  Solution","url":"https://garlicspace.com/posts/leetcode-add-and-search-word-data-structure-design-solution/"},{"date":"2021-01-17","summary":"map, filter, reduce 是函数式编程的函数, 不再需要循环分支使得代码更加简洁。map/reduce 和google的map/reduce功能是类似的， filter有些类似shuffle, 当然shuffle更多的工作是将相同的key放到同一个reduce计算中\n","tags":[],"title":"python map \u0026 filter \u0026 reduce","url":"https://garlicspace.com/posts/python-map-filter-reduce/"},{"date":"2021-01-17","summary":" 本周在学习Trie数据结构的时候，看到了他的发明者 Edward Fredkin，他也在研究reversible computing\n弗雷德金（Fredkin）对计算，硬件和软件一直很感兴趣。 在1960年代初期，他在BBN编写了第一台PDP-1汇编程序。 他是trie数据结构，Fredkin gate和 …","tags":[],"title":"可逆计算 reversible computing","url":"https://garlicspace.com/posts/%E5%8F%AF%E9%80%86%E8%AE%A1%E7%AE%97-reversible-computing/"},{"date":"2021-01-16","summary":"关于Trie - 最早提及Trie树的一篇文章","tags":["ai"],"title":"关于Trie","url":"https://garlicspace.com/posts/%E5%85%B3%E4%BA%8Etrie/"},{"date":"2021-01-12","summary":"题目： In English, we have a concept called root, which can be followed by some other word to form another longer word - let\u0026rsquo;s call this word successor. For …","tags":["leetcode"],"title":"LeetCode- Replace Words  Solution","url":"https://garlicspace.com/posts/leetcode-replace-words-solution/"},{"date":"2020-12-23","summary":"docker安装 zookeeper, dubbo-admin - 1 . 环境：","tags":["docker","linux"],"title":"docker安装 zookeeper, dubbo-admin","url":"https://garlicspace.com/posts/docker%E5%AE%89%E8%A3%85-zookeeper-dubbo-admin/"},{"date":"2020-12-22","summary":"docker安装tomcat - 1 . 环境：","tags":["docker","tomcat"],"title":"docker安装tomcat","url":"https://garlicspace.com/posts/docker%E5%AE%89%E8%A3%85tomcat/"},{"date":"2020-12-21","summary":"cenos7 docker安装 - - 环境：","tags":["docker-install"],"title":"cenos7 docker安装","url":"https://garlicspace.com/posts/cenos7-docker%E5%AE%89%E8%A3%85/"},{"date":"2020-12-21","summary":"spring boot + maven配置, 创建一个包含多个模块项目的步骤\n项目创建 使用spring的initializr 选择一下就可以生成代码\n项目: tongda (jar) 模块: user (war) order (war) common (jar) 配置:\nProject : Maven Project …","tags":[],"title":"spring boot+maven 生成多模块项目","url":"https://garlicspace.com/posts/spring-bootmaven-%E7%94%9F%E6%88%90%E5%A4%9A%E6%A8%A1%E5%9D%97%E9%A1%B9%E7%9B%AE/"},{"date":"2020-12-16","summary":"用Spring boot 生成Java项目 - 学习java, 尝试用了spring boot创建了一个项目， 使用是maven配置, spring boot 提供很多的模板， 创建项目非常方便， 这让我想起了visual studio 点击几下鼠标自动生成模板代码。","tags":["java"],"title":"用Spring boot 生成Java项目","url":"https://garlicspace.com/posts/2138/"},{"date":"2020-09-22","summary":"LeetCode- Map Sum Pairs Solution - Implement a MapSum class with insert, and sum methods","tags":["leetcode"],"title":"LeetCode- Map Sum Pairs  Solution","url":"https://garlicspace.com/posts/leetcode-map-sum-pairs-solution/"},{"date":"2020-09-16","summary":"Ext4 布局及inode,block信息统计 - The inode index node is a data structure in a Unix-style file system that describes a file-system object such as a file or a directory. Each inode store","tags":["ext4","linux"],"title":"Ext4 布局及inode,block信息统计","url":"https://garlicspace.com/posts/ext4-%E5%B8%83%E5%B1%80%E5%8F%8Ainodeblock%E4%BF%A1%E6%81%AF%E7%BB%9F%E8%AE%A1/"},{"date":"2020-09-16","summary":"Understanding Linux filesystems: ext4 and beyond - 这篇文章Understanding Linux filesystems: ext4 and beyond","tags":["ext","linux"],"title":"Understanding Linux filesystems: ext4 and beyond","url":"https://garlicspace.com/posts/understanding-linux-filesystems-ext4-and-beyond/"},{"date":"2020-09-15","summary":"查看inode相关信息 - The inode index node is a data structure in a Unix-style file system that describes a file-system object such as a file or a directory. Each inode stores the attrib","tags":["inode","linux"],"title":"查看inode相关信息","url":"https://garlicspace.com/posts/%E6%9F%A5%E7%9C%8Binode%E7%9B%B8%E5%85%B3%E4%BF%A1%E6%81%AF/"},{"date":"2020-09-09","summary":"close-on-exec - Donald E. Porter 教授的 CSE 506: Operating Systems 教材 VFS 部分中提到Linux文件操作使用的一个标识","tags":["linux"],"title":"close-on-exec","url":"https://garlicspace.com/posts/close-on-exec/"},{"date":"2020-09-07","summary":"LeetCode – Populating Next Right Pointers in Each Node Solution - You are given a perfect binary tree where all leaves are on the same level, and every parent has two children","tags":[],"title":"LeetCode – Populating Next Right Pointers in Each Node  Solution","url":"https://garlicspace.com/posts/leetcode-populating-next-right-pointers-in-each-node-solution/"},{"date":"2020-09-07","summary":"LeetCode –Populating Next Right Pointers in Each Node II - Given a binary tree","tags":[],"title":"LeetCode –Populating Next Right Pointers in Each Node II","url":"https://garlicspace.com/posts/leetcode-populating-next-right-pointers-in-each-node-ii/"},{"date":"2020-09-03","summary":"题目： Implement a trie with insert, search, and startsWith methods.\nExample:\n1 2 3 4 5 6 7 8 Trie trie = new Trie(); trie.insert(\u0026#34;apple\u0026#34;); …","tags":[],"title":"LeetCode- Implement Trie (Prefix Tree)","url":"https://garlicspace.com/posts/leetcode-implement-trie-prefix-tree/"},{"date":"2020-09-02","summary":"MezzFS文件系统 - 这篇文章MezzFS — Mounting object storage in Netflix’s media processing platfor","tags":["netflix"],"title":"MezzFS文件系统","url":"https://garlicspace.com/posts/mezzfs%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F/"},{"date":"2020-09-01","summary":"Tiny Core Linux 安装配置 - Tiny Core Linux是一个mini Linux操作系统,基于 BusyBox和FLTK提供基本功能。 其发行版本在11M-16M 官网上也提供Plus版本也只有106M。它很精致。","tags":["linux"],"title":"Tiny Core Linux 安装配置","url":"https://garlicspace.com/posts/tiny-core-linux-%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE/"},{"date":"2020-08-25","summary":"dhclient error while loading shared libraries libdns-export.so.1102 - - 环境：","tags":["dhclient","linux"],"title":"dhclient error while loading shared libraries libdns-export.so.1102","url":"https://garlicspace.com/posts/dhclient-error-while-loading-shared-libraries-libdns-export-so-1102/"},{"date":"2020-08-24","summary":"工作需要检查相关excel数据信息, 查询一个表格中的指定位置编号，检查相关多个个相关表格中指定位置编号是否相同。\n环境 windows10 python3.7 + openpyxl + xlrd 测试数据 目录结构 1 2 3 4 5 6 7 8 9 10 C:. │ checklist.py │ …","tags":["python"],"title":"python excel文件中指定字段是否相等","url":"https://garlicspace.com/posts/python%E6%A3%80%E6%9F%A5%E5%A4%9A%E4%B8%AA%E6%96%87%E4%BB%B6%E4%B8%AD%E6%8C%87%E5%AE%9A%E5%AD%97%E6%AE%B5%E6%98%AF%E5%90%A6%E7%9B%B8%E7%AD%89/"},{"date":"2020-08-19","summary":"题目： Given a binary tree, count the number of uni-value subtrees.\nA Uni-value subtree means all nodes of the subtree have the same value.\nExample :\n1 2 3 4 5 6 7 …","tags":[],"title":"LeetCode – Count Univalue Subtrees","url":"https://garlicspace.com/posts/leetcode-count-univalue-subtrees/"},{"date":"2020-08-12","summary":"出色管理者如何帮助团队成员解决问题 - 这篇文章Don’t solve problems if you want to be a great manager","tags":["ai"],"title":"出色管理者如何帮助团队成员解决问题","url":"https://garlicspace.com/posts/%E5%87%BA%E8%89%B2%E7%AE%A1%E7%90%86%E8%80%85%E5%A6%82%E4%BD%95%E5%B8%AE%E5%8A%A9%E5%9B%A2%E9%98%9F%E6%88%90%E5%91%98%E8%A7%A3%E5%86%B3%E9%97%AE%E9%A2%98/"},{"date":"2020-08-11","summary":"伙伴系统分配物理页后如何转换成为虚拟地址 - 极客时间 26 | 内核态内存映射：如何找到正确的会议室？ 一道课后问题","tags":["linux"],"title":"伙伴系统分配物理页后如何转换成为虚拟地址","url":"https://garlicspace.com/posts/%E4%BC%99%E4%BC%B4%E7%B3%BB%E7%BB%9F%E5%88%86%E9%85%8D%E7%89%A9%E7%90%86%E9%A1%B5%E5%90%8E%E5%A6%82%E4%BD%95%E8%BD%AC%E6%8D%A2%E6%88%90%E4%B8%BA%E8%99%9A%E6%8B%9F%E5%9C%B0%E5%9D%80/"},{"date":"2020-07-30","summary":"文件时间信息 - 文件时间信息一般包含，文件创建时间，文件修改时间，文件访问时间。 Unix/Linux 文件修改时间有两个一个是Modify Time 文件内容修改/ Change Time:文件权限状态/权限, 根据不同的文件系统，文件时间信息属性会有一些差别。Unix/Linux在挂载文件系统的时候会设置相关文件时间属性相关参数。","tags":["linux"],"title":"文件时间信息","url":"https://garlicspace.com/posts/%E6%96%87%E4%BB%B6%E6%97%B6%E9%97%B4%E4%BF%A1%E6%81%AF/"},{"date":"2020-07-29","summary":"工作需要修改excel文件创建内容时间(excel属性非文件属性)和上次修改时间, 用python写了一个脚本处理了一下。\n环境： windows10 python3.7 + openpyxl 1. 使用openpyxl修改excel属性 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 …","tags":["python"],"title":"python修改excel文档相关日期信息","url":"https://garlicspace.com/posts/python%E4%BF%AE%E6%94%B9excel%E6%96%87%E6%A1%A3%E7%9B%B8%E5%85%B3%E6%97%A5%E6%9C%9F%E4%BF%A1%E6%81%AF/"},{"date":"2020-07-28","summary":"题目： Given preorder and inorder traversal of a tree, construct the binary tree.\nNote:\nYou may assume that duplicates do not exist in the tree.\nFor example, given …","tags":["leetcode"],"title":"LeetCode-Construct Binary Tree from Preorder and Inorder Traversal","url":"https://garlicspace.com/posts/leetcode-construct-binary-tree-from-preorder-and-inorder-traversal/"},{"date":"2020-07-28","summary":"题目： Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree.\nAccording to the definition of LCA on Wikipedia: “The lowest …","tags":["leetcode"],"title":"LeetCode-Lowest Common Ancestor of a Binary Tree  Solution","url":"https://garlicspace.com/posts/leetcode-lowest-common-ancestor-of-a-binary-tree-solution/"},{"date":"2020-07-25","summary":"题目： Given inorder and postorder traversal of a tree, construct the binary tree.\nNote:\nYou may assume that duplicates do not exist in the tree.\nFor example, …","tags":[],"title":"LeetCode – Construct Binary Tree from Inorder and Postorder Traversal","url":"https://garlicspace.com/posts/leetcode-construct-binary-tree-from-inorder-and-postorder-traversal/"},{"date":"2020-07-24","summary":"Why mmap is faster than system calls - 原文链接 作者 Alexandra Sasha Fedorova","tags":[],"title":"Why mmap is faster than system calls","url":"https://garlicspace.com/posts/why-mmap-is-faster-than-system-calls/"},{"date":"2020-07-22","summary":"mmap相关API - mmap调用进程的虚拟进程空间中一段新的内存映射。","tags":["linux"],"title":"mmap相关API","url":"https://garlicspace.com/posts/mmap%E7%9B%B8%E5%85%B3api/"},{"date":"2020-07-18","summary":"centos7 升级 glibc \u0026\u0026 gcc - - cenos7X86_64","tags":["centos","gcc","glibc"],"title":"centos7 升级 glibc \u0026\u0026 gcc","url":"https://garlicspace.com/posts/centos7-%E5%8D%87%E7%BA%A7-glibc-gcc/"},{"date":"2020-07-13","summary":" 环境：\ncenos7(X86_64) + openssh ssh端口配置\n修改端口 例如8888\n文件 /etc/ssh/sshd_config\n1 2 #Port 22 Port 8888 重启服务\n1 2 systemctl restart sshd systemctl status sshd 防火墙配置: 我这 …","tags":["ssh"],"title":"cenos7+openssh 修改SSH服务端口","url":"https://garlicspace.com/posts/cenos7openssh-%E4%BF%AE%E6%94%B9ssh%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%8F%A3/"},{"date":"2020-07-12","summary":"题目： Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.\nNote: A …","tags":["leetcode"],"title":"LeetCode – Path Sum  Solution","url":"https://garlicspace.com/posts/leetcode-path-sum-solution/"},{"date":"2020-07-12","summary":"题目： Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).\nFor example, this binary tree [1,2,2,3,4,4,3] is symmetric:\n1 …","tags":["leetcode"],"title":"LeetCode – Symmetric Tree  Solution","url":"https://garlicspace.com/posts/leetcode-symmetric-tree-solution/"},{"date":"2020-07-11","summary":"Linux slob/slab/slub - Linux初始化通过bootmem/memblock引导内存分配进行内存管理，支持buddy system完成相关初始化后，将物理内存分配的功能转交给buddy system，buddy system是以page为单位分配方式。 对于内核要经常创建的对象， 如task_struct，","tags":["slab"],"title":"Linux slob/slab/slub","url":"https://garlicspace.com/posts/linux-slob-slab-slub/"},{"date":"2020-06-29","summary":"为什么x86无法生存-Why x86 won’t survive - 前不久， 评估CEO 库克在其全球开发者大宣布，Mac笔记本以及个人电脑将会改用苹果自家的ARM架构处理器。这将是自2006年从PowerPC处理器改用英特尔x86处理器后，又一次CPU架构的调整。下面这篇文章是Medium推送的，不过文章贬低X86中提到的漏洞, 我查","tags":[],"title":"为什么x86无法生存-Why x86 won’t survive","url":"https://garlicspace.com/posts/%E4%B8%BA%E4%BB%80%E4%B9%88x86%E6%97%A0%E6%B3%95%E7%94%9F%E5%AD%98-why-x86-wont-survive/"},{"date":"2020-06-28","summary":"通过alternatives进行多版本间切换 - 上周在学习单点登录安装CAS Overlay Template要使用指定版本,当时机器上安装了多个版本的jdk使用alternatives命令进行了切换","tags":["alternatives","linux"],"title":"通过alternatives进行多版本间切换","url":"https://garlicspace.com/posts/%E9%80%9A%E8%BF%87alternatives%E8%BF%9B%E8%A1%8C%E5%A4%9A%E7%89%88%E6%9C%AC%E9%97%B4%E5%88%87%E6%8D%A2/"},{"date":"2020-06-23","summary":"题目： Given a binary tree, find its maximum depth.\nThe maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf …","tags":["leetcode"],"title":"LeetCode – Maximum Depth of Binary Tree","url":"https://garlicspace.com/posts/leetcode-maximum-depth-of-binary-tree/"},{"date":"2020-06-23","summary":"题目： Given a binary tree, find its minimum depth.\nThe minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf …","tags":["leetcode"],"title":"LeetCode – Minimum Depth of Binary Tree","url":"https://garlicspace.com/posts/leetcode-minimum-depth-of-binary-tree/"},{"date":"2020-06-21","summary":"Linux Swap 启停及swappiness设置 - 可以通过磁盘分区和文件两种方式进行操作","tags":["linux","swap"],"title":"Linux Swap 启停及swappiness设置","url":"https://garlicspace.com/posts/linux-swap-%E5%90%AF%E5%81%9C%E5%8F%8Aswappiness%E8%AE%BE%E7%BD%AE/"},{"date":"2020-06-21","summary":"The XY Problem - 原文链接 The XY Problem","tags":["xy-problem"],"title":"The XY Problem","url":"https://garlicspace.com/posts/the-xy-problem/"},{"date":"2020-06-20","summary":"安全攻防技能-安全基础概念 - - cybersecurity: 网络空间安全涉及旨在保护设备，网络，程序和数据免受攻击和未经授权的访问的一系列实践，流程和技术; 网络安全不仅可以保护数据，还可以保护存储数据的资源和技术。","tags":["cybersecurity"],"title":"安全攻防技能-安全基础概念","url":"https://garlicspace.com/posts/%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%E6%8A%80%E8%83%BD-%E5%AE%89%E5%85%A8%E5%9F%BA%E7%A1%80%E6%A6%82%E5%BF%B5/"},{"date":"2020-06-09","summary":"题目： Given a binary tree, return the level order traversal of its nodes\u0026rsquo; values. (ie, from left to right, level by level).\nFor example:\nGiven binary tree …","tags":["leetcode"],"title":"LeetCode – Binary Tree Level Order Traversal  Solution","url":"https://garlicspace.com/posts/leetcode-binary-tree-level-order-traversal-solution/"},{"date":"2020-06-07","summary":"Timers and time management in the Linux kernel. Part 7. - 这篇文章 Timers and time management in the Linux kernel. Part 7","tags":["timer"],"title":"Timers and time management in the Linux kernel. Part 7.","url":"https://garlicspace.com/posts/linux%E5%86%85%E6%A0%B8%E4%B8%AD%E7%9A%84%E5%AE%9A%E6%97%B6%E5%99%A8%E5%92%8C%E6%97%B6%E9%97%B4%E7%AE%A1%E7%90%86-part-7/"},{"date":"2020-06-06","summary":"/proc/buddyinfo文件 - /proc/buddyinfo 文件可以查看Linux机器上可用的内存页， 可以查看每个节点，不同区域的每个order大小的块的可用数量, 下面是我们虚拟机的信息：","tags":["linux"],"title":"/proc/buddyinfo文件","url":"https://garlicspace.com/posts/proc-buddyinfo%E6%96%87%E4%BB%B6/"},{"date":"2020-06-04","summary":"题目： Given a binary tree, return the postorder traversal of its nodes\u0026rsquo; values.\nExample:\nInput:\n[1,null,2,3] 1 \\ 2 / 3\nOutput:\n[3,2,1]\nFollow up: Recursive …","tags":["leetcode"],"title":"LeetCode –Binary Tree Postorder Traversal","url":"https://garlicspace.com/posts/leetcode-binary-tree-postorder-traversal/"},{"date":"2020-06-04","summary":"由于工作需要，需要在项目立项前都需要进行功能点估算, 为后续计算项目组的的工作效率做准备。目前做了几次估算，在这里整理和总结一下。 我们目前使用的评估的标准参考 IFPUG: ISO/IEC 20926:2009\n","tags":["function-point"],"title":"功能点分析法整理","url":"https://garlicspace.com/posts/%E5%8A%9F%E8%83%BD%E7%82%B9%E5%88%86%E6%9E%90%E6%B3%95%E6%95%B4%E7%90%86/"},{"date":"2020-05-29","summary":"概述 wiki上的定义:\nThe buddy memory allocation technique is a memory allocation algorithm that divides memory into partitions to try to satisfy a memory request as …","tags":[],"title":"buddy memory allocation相关整理","url":"https://garlicspace.com/posts/buddy-memory-allocation%E7%9B%B8%E5%85%B3%E6%95%B4%E7%90%86/"},{"date":"2020-05-01","summary":"python根据excel内容生成文件夹 工作需要根据excel数据信息，生成对应的文件夹，用python写了一个脚本处理了一下。 样例中表格内容也进行了调整。\n环境：\nwindows10 python3.7 + openpyxl 目标：\n以list.xlsx数据为准，抽取指定sheet页中的指定字段信息，生成目录, …","tags":["python"],"title":"python根据excel内容生成文件夹","url":"https://garlicspace.com/posts/python%E6%A0%B9%E6%8D%AEexcel%E5%86%85%E5%AE%B9%E7%94%9F%E6%88%90%E6%96%87%E4%BB%B6%E5%A4%B9/"},{"date":"2020-04-27","summary":"Timers and time management in the Linux kernel. Part 6 - 这篇文章 Timers and time management in the Linux kernel. Part 6","tags":["linux","timer"],"title":"Timers and time management in the Linux kernel. Part 6","url":"https://garlicspace.com/posts/timers-and-time-management-in-the-linux-kernel-part-6/"},{"date":"2020-04-16","summary":"题目： Given a binary tree, return the inorder traversal of its nodes\u0026rsquo; values.\nExample:\nInput:\n1 2 3 4 5 6 [1,null,2,3] 1 \\ 2 / 3 Output:\n1 [1,3,2] Follow …","tags":[],"title":"LeetCode –Binary Tree Preorder Traversal","url":"https://garlicspace.com/posts/binary-tree-preorder-traversal/"},{"date":"2020-04-16","summary":"对于正常使用rm无法删除的文件可以通过查找inode进行删除\n1 2 ls -i find -inum xxx -delete or\n1 2 ls -i find -inum xxx -exec rm -i {} \\; 直接删除 1 2 3 4 5 6 7 8 9 [root@centosgpt vm]# ls -i …","tags":["linux","rm"],"title":"通过inode删除特殊字符文件","url":"https://garlicspace.com/posts/%E9%80%9A%E8%BF%87inode%E5%88%A0%E9%99%A4%E7%89%B9%E6%AE%8A%E5%AD%97%E7%AC%A6%E6%96%87%E4%BB%B6/"},{"date":"2020-04-12","summary":"Linux进程内存布局及映射信息 - 处理器在运行程序时，需要存储器来存放程序和程序使用的数据， 现代操作系统提供了存储器的抽象:虚拟存储器, 使得应用程序来说不用过多的考虑物理存储使用，简化了内存管理","tags":["linux","page"],"title":"Linux进程内存布局及映射信息","url":"https://garlicspace.com/posts/linux%E8%BF%9B%E7%A8%8B%E5%86%85%E5%AD%98%E5%B8%83%E5%B1%80%E5%8F%8A%E6%98%A0%E5%B0%84%E4%BF%A1%E6%81%AF/"},{"date":"2020-01-31","summary":"工作需要汇总整理相关excel数据信息，并按照规定格式进行反馈，用python写了一个脚本处理了一下。 样例中表格内容也进行了调整。\n环境：\nwindows10 python3.7 + openpyxl 目标：\n","tags":["python"],"title":"python汇总excel数据","url":"https://garlicspace.com/posts/python%E6%B1%87%E6%80%BB%E5%A4%84%E7%90%86excel%E6%95%B0%E6%8D%AE%E4%BE%8B%E5%AD%90/"},{"date":"2020-01-19","summary":"linux-sides-Timers and time management in the Linux kernel. Part 5. - 这篇文章 Timers and time management in the Linux kernel. Part 5","tags":["linux","timer"],"title":"linux-sides-Timers and time management in the Linux kernel. Part 5.","url":"https://garlicspace.com/posts/linux-sides-timers-and-time-management-in-the-linux-kernel-part-5/"},{"date":"2020-01-14","summary":"题目： There are N rooms and you start in room 0. Each room has a distinct number in 0, 1, 2, ..., N-1, and each room may have some keys to access the next room. …","tags":["leetcode"],"title":"LeetCode – Keys and Rooms","url":"https://garlicspace.com/posts/leetcode-keys-and-rooms/"},{"date":"2020-01-10","summary":"内存管理发展阶段 内存(RAM)是计算机一种重要资源, 随着应用越来越复杂，不管存储器有多大,程序都可以把他填满,这就迫使人们不断寻找解决方案去管理它.\n内存管理经历的几个阶段；\n","tags":["huge-pages","linux"],"title":"内存管理 - 页面大小","url":"https://garlicspace.com/posts/%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86-%E9%A1%B5%E9%9D%A2%E5%A4%A7%E5%B0%8F/"},{"date":"2020-01-07","summary":"HugeTLB Pages - 这篇文章 Huge TLB Pages是出Linux Kernel文档","tags":["huge-pages","linux"],"title":"HugeTLB Pages","url":"https://garlicspace.com/posts/hugetlb-pages/"},{"date":"2019-12-31","summary":"putty免密登录SSH服务 - - - cenos7X86_64 + openssh - windows10 - putty","tags":["linux","putty","ssh"],"title":"putty免密登录SSH服务","url":"https://garlicspace.com/posts/putty%E6%97%A0%E5%AF%86%E7%A0%81%E7%99%BB%E5%BD%95ssh%E6%9C%8D%E5%8A%A1/"},{"date":"2019-12-30","summary":"LeetCode – 01 Matrix - Given a matrix consists of 0 and 1, find the distance of the nearest 0 for each cell","tags":[],"title":"LeetCode – 01 Matrix","url":"https://garlicspace.com/posts/leetcode-01-matrix/"},{"date":"2019-11-03","summary":"题目： An image is represented by a 2-D array of integers, each integer representing the pixel value of the image (from 0 to 65535).\nGiven a coordinate (sr, sc) …","tags":["leetcode"],"title":"LeetCode – Flood Fill","url":"https://garlicspace.com/posts/leetcode-flood-fill/"},{"date":"2019-11-03","summary":"Linux Swap 分区相关命令 - - /proc/swaps 文件","tags":["linux"],"title":"Linux Swap 分区相关命令","url":"https://garlicspace.com/posts/linux-swap-%E5%88%86%E5%8C%BA%E7%9B%B8%E5%85%B3%E5%91%BD%E4%BB%A4/"},{"date":"2019-11-03","summary":"这篇文章Open Sourcing Mantis: A Platform For Building Cost-Effective, Realtime, Operations-Focused Applications 是出自 Netflix Technology Blog。\n作为流式微服务生态系统，Mantis平台为工程 …","tags":["netflix"],"title":"Netflix Blog- Mantis 开源","url":"https://garlicspace.com/posts/netflix-blog-mantis-%E5%BC%80%E6%BA%90/"},{"date":"2019-11-03","summary":"物理内存管理 - - SMP: CPU 通过总线访问内存, 称为 SMP 对称多处理器, 采用平坦内存模型, 物理页号连续, 总线成为瓶颈 - NUMA: CPU 都有本地内存, 访问内存不用总线, 称为 NUMA 非一致内存访问 采用非连续内存模型，页号不连续 - 稀疏内存模型","tags":["linux","memory"],"title":"物理内存管理","url":"https://garlicspace.com/posts/%E7%89%A9%E7%90%86%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86/"},{"date":"2019-10-25","summary":"linux-sides-Timers and time management in the Linux kernel. Part 4. - 这篇文章 Timers and time management in the Linux kernel. Part 4","tags":["linux","timer"],"title":"linux-sides-Timers and time management in the Linux kernel. Part 4.","url":"https://garlicspace.com/posts/linux-sides-timers-and-time-management-in-the-linux-kernel-part-4/"},{"date":"2019-10-25","summary":"进程内存布局 - - 物理内存管理 - 虚拟内存管理 - 物理内存与虚拟内存的映射","tags":["linux","memory"],"title":"进程内存布局","url":"https://garlicspace.com/posts/%E8%BF%9B%E7%A8%8B%E5%86%85%E5%AD%98%E5%B8%83%E5%B1%80/"},{"date":"2019-10-19","summary":"进程内存布局 可以通过一下方法查看:\n命令：\npmap 文件：\nproc filesystem maps 使用 pmap 可以从其说明看到 -X 也是从/proc/PID/smaps获取了更详细的信息\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [root@centosgpt ~]# …","tags":["linux","memory-layout","pmap"],"title":"查看进程内存布局","url":"https://garlicspace.com/posts/%E6%9F%A5%E7%9C%8B%E8%BF%9B%E7%A8%8B%E5%86%85%E5%AD%98%E5%B8%83%E5%B1%80/"},{"date":"2019-10-16","summary":"LeetCode – Decode String - Given an encoded string, return its decoded string","tags":["leetcode"],"title":"LeetCode – Decode String","url":"https://garlicspace.com/posts/leetcode-decode-string/"},{"date":"2019-10-15","summary":"这是 CMMI的wiki\n能力成熟度模型集成（CMMI）是一个过程级改进培训和评估程序。 它是由ISACA的子公司CMMI Institute管理的，由卡内基梅隆大学（CMU）开发。 许多美国国防部（DoD）和美国政府合同都要求这样做，尤其是在软件开发方面。 CMU声称CMMI可用于指导整个项目，部门或整个组织的流程改 …","tags":["cmmi"],"title":"wiki-Capability Maturity Model Integration","url":"https://garlicspace.com/posts/wiki-capability-maturity-model-integration/"},{"date":"2019-10-14","summary":"CMMI3相关 - 公司近期进行CMMI3, 公司目标很明确:招投标用的，过程中准备了一些材料，对于我们外包工作来说,还是有一定指导作用的。","tags":["cmmi"],"title":"CMMI3相关","url":"https://garlicspace.com/posts/cmmi3%E7%9B%B8%E5%85%B3/"},{"date":"2019-10-12","summary":"进程线程查看 可以通过一下方法查看:\n命令：\nps top pidstat pstree 文件:\nproc filesystem 使用 ps ps与线程相关的参数\n1 2 3 4 5 6 THREAD DISPLAY H Show threads as if they were processes. -L Show …","tags":["linux","stack","trace"],"title":"进程中线程查看及线程栈查看","url":"https://garlicspace.com/posts/%E8%BF%9B%E7%A8%8B%E4%B8%AD%E7%BA%BF%E7%A8%8B%E6%9F%A5%E7%9C%8B%E5%8F%8A%E7%BA%BF%E7%A8%8B%E6%A0%88%E6%9F%A5%E7%9C%8B/"},{"date":"2019-10-07","summary":"题目： Implement the following operations of a stack using queues.\npush(x) \u0026ndash; Push element x onto stack. pop() \u0026ndash; Removes the element on top of the …","tags":["leetcode"],"title":"LeetCode – Implement Stack using Queues","url":"https://garlicspace.com/posts/leetcode-implement-stack-using-queues/"},{"date":"2019-10-03","summary":"Linux进程调度 - wiki上的关于scheduler的定义:","tags":["linux","scheduler"],"title":"Linux进程调度","url":"https://garlicspace.com/posts/linux%E8%BF%9B%E7%A8%8B%E8%B0%83%E5%BA%A6/"},{"date":"2019-09-13","summary":"linux-sides-Timers and time management in the Linux kernel. Part 3. - 这篇文章 Timers and time management in the Linux kernel. Part 3","tags":["linux","timer"],"title":"linux-sides-Timers and time management in the Linux kernel. Part 3.","url":"https://garlicspace.com/posts/linux-sides-timers-and-time-management-in-the-linux-kernel-part-3/"},{"date":"2019-09-08","summary":"题目： Implement the following operations of a queue using stacks.\npush(x) \u0026ndash; Push element x to the back of queue. pop() \u0026ndash; Removes the element from in …","tags":["leetcode"],"title":"LeetCode – Implement Queue using Stacks","url":"https://garlicspace.com/posts/leetcode-implement-queue-using-stacks/"},{"date":"2019-09-07","summary":"Graph-Easy ascii图片绘制 - - 环境：","tags":["kernel"],"title":"Graph-Easy ascii图片绘制","url":"https://garlicspace.com/posts/graph-easy-ascii%E5%9B%BE%E7%89%87%E7%BB%98%E5%88%B6/"},{"date":"2019-09-06","summary":"Linux内核参数sysctl_sched_child_runs_first - Linux2.6.23版本引入了CFS调度器,通过sched_child_runs_first设置是否子进程优先运行, 下面是 SUSE Documentation","tags":["child-run-first","linux"],"title":"Linux内核参数sysctl_sched_child_runs_first","url":"https://garlicspace.com/posts/linux%E5%86%85%E6%A0%B8%E5%8F%82%E6%95%B0sysctl_sched_child_runs_first/"},{"date":"2019-09-04","summary":"Linuxjournal-The Linux Scheduler - 这篇文章 The Linux Scheduler作者Moshe Bar发表在linuxjournal, 是一篇2000年的文章.从L","tags":["linux","schduler"],"title":"Linuxjournal-The Linux Scheduler","url":"https://garlicspace.com/posts/linuxjournal-the-linux-scheduler/"},{"date":"2019-09-01","summary":"Linux 与 Windows 文本文件格式转换 - 由于Windows与Linux对换行的定义不同,导致Windows应用不能正常按行显示Linux文本，Linux显示Windows文本时会带有^M","tags":["linux","windows","换行"],"title":"Linux 与 Windows 文本文件格式转换","url":"https://garlicspace.com/posts/linux-%E4%B8%8E-windows-%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E8%BD%AC%E6%8D%A2/"},{"date":"2019-08-31","summary":"awk中的\u0026rsquo;数组\u0026lsquo;是一种关联数组，又称作maps、字典，他的索引不需要连续， 可以使用字符串、数字做为索引， 此外，不需要事先声明数组的大小 - 数组可以在运行时扩展/收缩。\n","tags":["awk","linux"],"title":"awk中的'数组'","url":"https://garlicspace.com/posts/awk%E4%B8%AD%E7%9A%84%E6%95%B0%E7%BB%84/"},{"date":"2019-08-31","summary":"FTP ASCII上传下载 - 近期在进行AIX到Linux迁移，发现从windows终端ftp时，客户端设置ASCII传输模式, 服务端并不能自动转换换行符号,脚本出现^M,需要手工删除。 Linux环境为RedHat7.3+vsftpd3.0.2,vsftpd.conf中ascii_download_enable/ascii_u","tags":["ftp","linux"],"title":"FTP ASCII上传下载","url":"https://garlicspace.com/posts/ftp-ascii%E4%B8%8A%E4%BC%A0%E4%B8%8B%E8%BD%BD/"},{"date":"2019-08-31","summary":"题目： Given a binary tree, return the inorder traversal of its nodes\\\u0026rsquo; values.\nExample:\nInput:\n1 2 3 4 5 6 [1,null,2,3] 1 \\ 2 / 3 Output:\n1 [1,3,2] Follow …","tags":["leetcode"],"title":"LeetCode – Binary Tree Inorder Traversal","url":"https://garlicspace.com/posts/leetcode-binary-tree-inorder-traversal/"},{"date":"2019-08-29","summary":"linux kernel documentation-CFS Scheduler - 这篇文章 CFS Scheduler是Linux Kernel文档","tags":["linux","kernel","ai"],"title":"linux kernel documentation-CFS Scheduler","url":"https://garlicspace.com/posts/linux-kernel-documentation-cfs-scheduler/"},{"date":"2019-08-20","summary":"题目： You are given a list of non-negative integers, a1, a2, \u0026hellip;, an, and a target, S. Now you have 2 symbols + and -. For each integer, you should choose …","tags":["leetcode"],"title":"LeetCode – Target Sum","url":"https://garlicspace.com/posts/leetcode-target-sum/"},{"date":"2019-08-20","summary":"linux-sides-Timers and time management-Introduction to the clocksource framework - 这篇文章 Timers and time management in the Linux kernel. Part 2","tags":["linux","kernel"],"title":"linux-sides-Timers and time management-Introduction to the clocksource framework","url":"https://garlicspace.com/posts/linux-sides-timers-and-time-management-introduction-to-the-clocksource-framework/"},{"date":"2019-08-20","summary":"大多数早期windows版本创建的应用可以在win10下正常运行，但也有部分程序无法正常运行, 可以尝试通过兼容性设置解决.\n修改高DPI设置 在使用一款windows客户端产品时，由于机器分辨率较高导致其中某一个可执行文件无法运行, 通过修改高DPI设置解决，下面是具体的解决方法:\n","tags":["dpi","windows"],"title":"旧版本应用与win10兼容","url":"https://garlicspace.com/posts/%E6%97%A7%E7%89%88%E6%9C%AC%E5%BA%94%E7%94%A8%E4%B8%8Ewin10%E5%85%BC%E5%AE%B9/"},{"date":"2019-08-18","summary":"Linux进程创建 - 以fork函数为例，看下Linux进程创建具体工作流程:","tags":["clone","fork","linux"],"title":"Linux进程创建","url":"https://garlicspace.com/posts/linux%E8%BF%9B%E7%A8%8B%E5%88%9B%E5%BB%BA/"},{"date":"2019-08-09","summary":"LeetCode – Clone Graph - Given a reference of a node in a connected Connected_graph undirected graph, return a *","tags":["leetcode"],"title":"LeetCode – Clone Graph","url":"https://garlicspace.com/posts/leetcode-clone-graph/"},{"date":"2019-08-07","summary":"linux-sides-Timers and time management-Introduction - 这篇文章 Timers and time management in the Linux kernel. Part 1","tags":["linux","timer"],"title":"linux-sides-Timers and time management-Introduction","url":"https://garlicspace.com/posts/linux-sides-timers-and-time-management-introduction/"},{"date":"2019-08-06","summary":"sysctl-查询修改Linux内核参数 - sysctl命令可以_实时_（runtime）查看和修改linux 内核参数。这个命令可以在大多数发行版本找到， 另外内核参数，也可以通过procfs 文件系统，在 /proc/sys/kernel下 进行查看和修改。","tags":["linux","sysctl"],"title":"sysctl-查询修改Linux内核参数","url":"https://garlicspace.com/posts/sysctl-%E6%9F%A5%E8%AF%A2%E4%BF%AE%E6%94%B9linux%E5%86%85%E6%A0%B8%E5%8F%82%E6%95%B0/"},{"date":"2019-08-05","summary":"asm-offset.h生成过程 - asm-offset.h 文件是在内核编译过程中生成的，生成过程 之前整理了一份笔记 TASK_threadsp的实现及asm-offsets.h， 其中涉及sed处理包含在内核代","tags":["linux","sed"],"title":"asm-offset.h生成过程","url":"https://garlicspace.com/posts/asm-offset-h%E4%B8%8Esed/"},{"date":"2019-08-04","summary":"题目： Evaluate the value of an arithmetic expression in Reverse Polish Notation.\nValid operators are +, -, *, /. Each operand may be an integer or another …","tags":["leetcode"],"title":"LeetCode – Evaluate Reverse Polish Notation","url":"https://garlicspace.com/posts/leetcode-evaluate-reverse-polish-notation/"},{"date":"2019-08-03","summary":"Linux如何管理和度量时间 - Linux 内核的Timer必须要完成两种定时测量（timing measurement）","tags":["linux"],"title":"Linux如何管理和度量时间","url":"https://garlicspace.com/posts/linux%E5%A6%82%E4%BD%95%E7%AE%A1%E7%90%86%E5%92%8C%E5%BA%A6%E9%87%8F%E6%97%B6%E9%97%B4/"},{"date":"2019-07-26","summary":"问题： 本周在配合系统测试过程中，发现系统报文接收异常， 排查过程中发现应用进程启动异常。 当时状态模拟如下： 1 2 3 4 5 6 7 8 9 10 11 12 13 [root@centosgpt server]# ps -ef|grep daemon dbus 934 1 0 Jul22 ? 00:01:15 …","tags":["shell","xargs"],"title":"kill多个同名进程","url":"https://garlicspace.com/posts/kill%E5%A4%9A%E4%B8%AA%E5%90%8C%E5%90%8D%E8%BF%9B%E7%A8%8B/"},{"date":"2019-07-25","summary":"Airbnb Blog- 分布式支付系统中交易完整性的测量 - 这篇文章 Measuring Transactional Integrity in Airbnb’s Distributed Payment Ecosystem","tags":["airbnb"],"title":"Airbnb Blog- 分布式支付系统中交易完整性的测量","url":"https://garlicspace.com/posts/airbnb-blog-%E5%88%86%E5%B8%83%E5%BC%8F%E6%94%AF%E4%BB%98%E7%B3%BB%E7%BB%9F%E4%B8%AD%E4%BA%A4%E6%98%93%E5%AE%8C%E6%95%B4%E6%80%A7%E7%9A%84%E6%B5%8B%E9%87%8F/"},{"date":"2019-07-23","summary":"LeetCode – Daily Temperatures - Daily Temperatures","tags":["leetcode"],"title":"LeetCode – Daily Temperatures","url":"https://garlicspace.com/posts/leetcode-daily-temperatures/"},{"date":"2019-07-22","summary":" 这篇文章Re-Architecting the Video Gatekeeper 是出自 Netflix Technology Blog。\nNetflix上的视频需要通过Title Operations 团队的策划，使其遵守的合同；字幕、配音、翻译能够提供给合适的人群；标题名称和概要可供使用和翻译；满足各个国家的成熟 …","tags":["netflix"],"title":"Netflix Blog- 重构视频GateKeeper","url":"https://garlicspace.com/posts/netflix-blog-%E9%87%8D%E6%9E%84%E8%A7%86%E9%A2%91gatekeeper/"},{"date":"2019-07-21","summary":"TASK_threadsp的实现及asm-offsets.h - - 主动调度与上下文切换","tags":["asm-offsets-h","linux"],"title":"TASK_threadsp的实现及asm-offsets.h","url":"https://garlicspace.com/posts/task-threadsp%E7%9A%84%E5%AE%9E%E7%8E%B0%E5%8F%8Aasm-offsets-h/"},{"date":"2019-07-20","summary":"查看进程运行时间及上下文切换次数 - CentOS Linux release 7.5.1804 CoreLinux centosgpt 5.2.0-rc4 1 SMP Sun Jun 16 13:25:49 CST 2019 x86_64 x86_64 x86_64 GNU/Linux","tags":["linux"],"title":"查看进程运行时间及上下文切换次数","url":"https://garlicspace.com/posts/%E6%9F%A5%E7%9C%8B%E8%BF%9B%E7%A8%8B%E8%BF%90%E8%A1%8C%E6%97%B6%E9%97%B4%E5%8F%8A%E4%B8%8A%E4%B8%8B%E6%96%87%E5%88%87%E6%8D%A2%E6%AC%A1%E6%95%B0/"},{"date":"2019-07-19","summary":"LeetCode – Valid Parentheses - Given a string containing just the characters '', '', '{', '}', '' and '', determine if the input string is valid","tags":["ai"],"title":"LeetCode – Valid Parentheses","url":"https://garlicspace.com/posts/leetcode-valid-parentheses/"},{"date":"2019-07-16","summary":"Linux 进程，线程的调度策略API - 实时进程的调度策略：","tags":["linux","sched"],"title":"Linux 进程，线程的调度策略API","url":"https://garlicspace.com/posts/linux-%E8%BF%9B%E7%A8%8B%E7%BA%BF%E7%A8%8B%E7%9A%84%E8%B0%83%E5%BA%A6%E7%AD%96%E7%95%A5api/"},{"date":"2019-07-13","summary":"这篇文章 Scaling Appsec at Netflix 是出自 Netflix Technology Blog\nNetflix的 应用安全团队的主要服务对象是在云基础架构上发布应用的工程团队，\nNetflix安全主张：安全是每个产品团队的责任\n","tags":["segoe-ui","netflix"],"title":"Netflix Blog- Netflix的应用安全","url":"https://garlicspace.com/posts/netflix-blog-netflix%E7%9A%84%E5%BA%94%E7%94%A8%E5%AE%89%E5%85%A8/"},{"date":"2019-07-12","summary":"概述： 项目变更版本需要源码包， 检查关键代码是否缺失，其中有一个步骤需要进入指定目录解压所有.ZIP压缩包\n问题： 1. 并行处理；\n2. zipfile extract后中文名称乱码；\n","tags":["python","zip"],"title":"python 解压指定路径下zip文件","url":"https://garlicspace.com/posts/python-%E8%A7%A3%E5%8E%8B%E6%8C%87%E5%AE%9A%E8%B7%AF%E5%BE%84%E4%B8%8Bzip%E6%96%87%E4%BB%B6/"},{"date":"2019-07-10","summary":"题目： Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.\npush(x) \u0026ndash; Push element x onto stack. pop() \u0026ndash; …","tags":["leetcode"],"title":"LeetCode – Min Stack","url":"https://garlicspace.com/posts/leetcode-min-stack/"},{"date":"2019-07-09","summary":"这篇文章CFI directives in assembly file (18 Jan 2017)， 是出自google 工程师Adam Langley\n问题提出： 函数调用栈 1 2 3 4 5 6 7 8 : : | caller\u0026#39;s stack | +----------------+ …","tags":["cfi","debug"],"title":"汇编文件中的CFI指令","url":"https://garlicspace.com/posts/%E6%B1%87%E7%BC%96%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84cfi%E6%8C%87%E4%BB%A4/"},{"date":"2019-07-07","summary":"函数栈的调用 - 本篇主要通过反汇编与GDB两种方式分析函数栈的使用过程。","tags":["linux","stack"],"title":"函数栈的调用","url":"https://garlicspace.com/posts/%E5%87%BD%E6%95%B0%E6%A0%88%E7%9A%84%E8%B0%83%E7%94%A8/"},{"date":"2019-07-03","summary":"获取进程信息相关命令 - - pid： 进程ID - tid：线程ID - tgid：主线程ID","tags":["linux","ps"],"title":"获取进程信息相关命令","url":"https://garlicspace.com/posts/%E8%8E%B7%E5%8F%96%E8%BF%9B%E7%A8%8B%E4%BF%A1%E6%81%AF%E7%9B%B8%E5%85%B3%E5%91%BD%E4%BB%A4/"},{"date":"2019-07-02","summary":"题目： Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...) which sum to n.\nExample 1:\nInput: n = 12 Output: …","tags":["leetcode"],"title":"LeetCode – Perfect Squares","url":"https://garlicspace.com/posts/leetcode-perfect-squares/"},{"date":"2019-06-29","summary":"linux 任务状态定义 - Linux task_struct 结构中 涉及进程状态的属性有三个，其中进程对应的状态分为两类， 一类是运行中状态， 另一类是进程退出状态。","tags":["linux","task_struct"],"title":"linux 任务状态定义","url":"https://garlicspace.com/posts/linux%E4%BB%BB%E5%8A%A1%E7%8A%B6%E6%80%81%E5%AE%9A%E4%B9%89/"},{"date":"2019-06-27","summary":"Netflix Blog-令人愉快的用户界面：复活节彩蛋 - 这篇文章 Delightful User Interfaces: Easter Eggs 是出自 Netflix","tags":["css","netflix","ui"],"title":"Netflix Blog-令人愉快的用户界面：复活节彩蛋","url":"https://garlicspace.com/posts/netflix-blog-%E4%BB%A4%E4%BA%BA%E6%84%89%E5%BF%AB%E7%9A%84%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2%E5%A4%8D%E6%B4%BB%E8%8A%82%E5%BD%A9%E8%9B%8B/"},{"date":"2019-06-27","summary":"文件签名及校验方法 - 在上网下载镜像或安装文件时经常会看到MD5,SHA-1,SHA-256 ，signature，一起显示，这些文件帮助我们验证下载的文件是否损坏或者被篡改以及文件的真实性， 散列值可以使用windows， macOS，Linux内置命令进行验证。 文件签名可以使用工具gpg进行校验。","tags":["linux"],"title":"文件签名及校验方法","url":"https://garlicspace.com/posts/%E6%96%87%E4%BB%B6%E7%AD%BE%E5%90%8D%E5%8F%8A%E6%A0%A1%E9%AA%8C%E6%96%B9%E6%B3%95/"},{"date":"2019-06-23","summary":"题目： You have a lock in front of you with 4 circular wheels. Each wheel has 10 slots: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'. The wheels can rotate …","tags":["leetcode"],"title":"LeetCode –  Open the Lock","url":"https://garlicspace.com/posts/leetcode-open-the-lock/"},{"date":"2019-06-20","summary":"Netflix Blog-容器的预测性CPU隔离 - 这篇文章 Predictive CPU isolation of containers at Netflix","tags":["linux","ai"],"title":"Netflix Blog-容器的预测性CPU隔离","url":"https://garlicspace.com/posts/netflix-blog-%E5%AE%B9%E5%99%A8%E7%9A%84%E9%A2%84%E6%B5%8B%E6%80%A7cpu%E9%9A%94%E7%A6%BB/"},{"date":"2019-06-20","summary":"定义： 并发与并行： 并发（concurrency）:实际上串行发生的事情好像同时发生，表述了单核处理器中线程或者进程的行为特点 并行（parallelism）：并发序列同时执行， 真正的并行只能在多处理其上存在。 异步与同步： 异步（asynchronous）与同步（synchronous）区别在于发需求的人是否需要 …","tags":["thread"],"title":"Posix Threads API 整理","url":"https://garlicspace.com/posts/posix-threads-api-%E6%95%B4%E7%90%86/"},{"date":"2019-06-17","summary":"insmod: ERROR: could not insert module *.ko: Unknown symbol in module - 在实际编译运行 什么是RCU ：API 中的例子 rcu_examplehttps:/","tags":["gpl"],"title":"insmod: ERROR: could not insert module *.ko: Unknown symbol in module","url":"https://garlicspace.com/posts/insmod-error-could-not-insert-module-ko-unknown-symbol-in-module/"},{"date":"2019-06-17","summary":"题目： Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent …","tags":[],"title":"LeetCode – Number of Islands","url":"https://garlicspace.com/posts/leetcode-number-of-islands/"},{"date":"2019-06-15","summary":"什么是RCU ：API - 这篇文章 RCU part 3: the RCU API","tags":["rcu"],"title":"什么是RCU ：API","url":"https://garlicspace.com/posts/%E4%BB%80%E4%B9%88%E6%98%AFrcu-api/"},{"date":"2019-06-14","summary":"题目： Design your implementation of the circular queue. The circular queue is a linear data structure in which the operations are performed based on FIFO (First …","tags":["leetcod"],"title":"LeetCode – Design Circular Queue","url":"https://garlicspace.com/posts/leetcode-design-circular-queue/"},{"date":"2019-06-14","summary":"方法： 1 bc命令 [root@centosgpt ~]# echo \u0026ldquo;ibase=16; FF\u0026rdquo; |bc 255\n2. bash [root@centosgpt ~]# echo $((0xFF)) 255\n3. printf [root@centosgpt ~]# printf …","tags":["shell-hex"],"title":"shell16进制hex和10进制转换","url":"https://garlicspace.com/posts/shell16%E8%BF%9B%E5%88%B6hex%E5%92%8C10%E8%BF%9B%E5%88%B6%E8%BD%AC%E6%8D%A2/"},{"date":"2019-06-12","summary":"什么是RCU：用法 - 这篇文章 What is RCU? Part 2: Usage","tags":["rcu"],"title":"什么是RCU：用法","url":"https://garlicspace.com/posts/%E4%BB%80%E4%B9%88%E6%98%AFrcu%E7%94%A8%E6%B3%95/"},{"date":"2019-06-11","summary":"ELF 文件格式分析 - ELF： Executable and Linkable Format","tags":["elf","linux"],"title":"ELF 文件格式分析","url":"https://garlicspace.com/posts/elf-%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E5%88%86%E6%9E%90/"},{"date":"2019-06-06","summary":"Vmware + Centos7 + NAT 方式连接公网 - 使用gdb调试时， Missing separate debuginfos, use: debuginfo-install glibc-2.17-260.el7.x86_64， 需要虚拟机联网更新。","tags":["centos7","vmware"],"title":"Vmware + Centos7 + NAT  方式连接公网","url":"https://garlicspace.com/posts/vmware-centos7-nat-%E6%96%B9%E5%BC%8F%E8%BF%9E%E6%8E%A5%E5%85%AC%E7%BD%91/"},{"date":"2019-06-03","summary":"题目： Given a linked list, rotate the list to the right by k places, where k is non-negative.\nExample 1:\n1 2 3 4 5 Input: 1-\u0026gt;2-\u0026gt;3-\u0026gt;4-\u0026gt;5-\u0026gt;NULL, k = …","tags":["leetcode","linklist"],"title":"LeetCode – Rotate List","url":"https://garlicspace.com/posts/leetcode-rotate-list/"},{"date":"2019-06-02","summary":"Linux下实现一个系统调用 - 环境： cenos7","tags":["kernel","linux"],"title":"Linux下实现一个系统调用","url":"https://garlicspace.com/posts/linux%E4%B8%8B%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AA%E7%B3%BB%E7%BB%9F%E8%B0%83%E7%94%A8/"},{"date":"2019-06-02","summary":"什么是RCU - 这篇文章What is RCU, Fundamentally?","tags":["lock","rcu"],"title":"什么是RCU","url":"https://garlicspace.com/posts/%E4%BB%80%E4%B9%88%E6%98%AFrcu/"},{"date":"2019-05-29","summary":"遇到问题: 实施过程中 oracle 报错 ORA-01795, limit on in clause， 发现是SQL IN 语句中的条件从ZZ表中拼接而成。 1 2 3 4 5 6 SELECT * FROM T1 WHERE T1.VAL in (\u0026#39;1111\u0026#39;, \u0026#39;2222\u0026#39;, …","tags":["oracle","sql"],"title":"ORA-01795, limit on in clause","url":"https://garlicspace.com/posts/ora-01795-limit-on-in-clause/"},{"date":"2019-05-28","summary":"LeetCode-Copy List with Random Pointer - A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null","tags":["leetcode"],"title":"LeetCode-Copy List with Random Pointer","url":"https://garlicspace.com/posts/leetcode-copy-list-with-random-pointer/"},{"date":"2019-05-26","summary":"linux内核中的进程列表 - /include/linux/types.hstruct list_head { struct list_head *next, *prev; };与响应的结构组成双向链表。","tags":["linux"],"title":"linux内核中的进程列表","url":"https://garlicspace.com/posts/linux%E5%86%85%E6%A0%B8%E8%BF%9B%E7%A8%8B%E5%88%97%E8%A1%A8%E5%AE%9E%E7%8E%B0/"},{"date":"2019-05-21","summary":"Netflix Blog- Netflix Python技术的使用 - 这篇文章 Python at Netflix 是出自 Netflix Technology Blog","tags":["netflix","python"],"title":"Netflix Blog- Netflix Python技术的使用","url":"https://garlicspace.com/posts/netflix-blog-netflix-python%E6%8A%80%E6%9C%AF%E7%9A%84%E4%BD%BF%E7%94%A8/"},{"date":"2019-05-20","summary":"题目： You are given a doubly linked list which in addition to the next and previous pointers, it could have a child pointer, which may or may not point to a …","tags":["leetcode"],"title":"LeetCode – Flatten a Multilevel Doubly Linked List","url":"https://garlicspace.com/posts/leetcode-flatten-a-multilevel-doubly-linked-list/"},{"date":"2019-05-20","summary":"使用python多线程方式扫描某台机器开放端口\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 import socket import …","tags":[],"title":"python多线程方式扫描开放端口","url":"https://garlicspace.com/posts/%E6%89%AB%E6%8F%8F%E7%AB%AF%E5%8F%A3python%E5%AE%9E%E7%8E%B0/"},{"date":"2019-05-19","summary":"这篇文章 Introducing SVT-AV1: a scalable open-source AV1 framework\n是出自 Netflix Technology Blog\nSVT-AV1是什么 ？ SVT-AV1是2019年4月8日， Intel与Netflix合作开发的视频软件解码器，SVT …","tags":[],"title":"Netflix Blog-关于SVT-AV1","url":"https://garlicspace.com/posts/%E5%85%B3%E4%BA%8Esvt-av1/"},{"date":"2019-05-18","summary":"查看Linux分区和硬盘空间命令 - 常用的硬盘分区及空间信息查看命令","tags":["linux","ai"],"title":"查看Linux分区和硬盘空间命令","url":"https://garlicspace.com/posts/%E6%9F%A5%E7%9C%8Blinux%E5%88%86%E5%8C%BA%E5%92%8C%E7%A1%AC%E7%9B%98%E7%A9%BA%E9%97%B4%E5%91%BD%E4%BB%A4/"},{"date":"2019-05-16","summary":"grub2 配置centos7，ubuntu - 1. VMWARE 安装centos7 ， 参考鸟哥私房菜第三章","tags":["linux"],"title":"grub2 配置centos7，ubuntu","url":"https://garlicspace.com/posts/grub2-%E9%85%8D%E7%BD%AEcentos7ubuntu/"},{"date":"2019-05-12","summary":"题目： Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.\nExample: …","tags":[],"title":"LeetCode -  Merge Two Sorted Lists","url":"https://garlicspace.com/posts/leetcode-merge-two-sorted-lists/"},{"date":"2019-05-12","summary":"LeetCode – Add Two Numbers - You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes","tags":["leetcode"],"title":"LeetCode – Add Two Numbers","url":"https://garlicspace.com/posts/leetcode-add-two-numbers/"},{"date":"2019-05-11","summary":"gethostbyname函数实现分析 - DNS是一个分层级 （hierarchical ），分布式（decentralized）的网络数据库，完成主机名称和IP地址之间的相互映射。DNS名称空间包含一个树状结构，树根没有命名， 下面是树的最高层为顶级域名， 顶级域名包括： 顶级域名（gTLD），国家代码顶级域名（ccTLD）， 国际化国家设施顶级域名（i","tags":["ssl","networking","ai"],"title":"gethostbyname函数实现分析","url":"https://garlicspace.com/posts/gethostbyname%E5%87%BD%E6%95%B0%E5%AE%9E%E7%8E%B0%E5%88%86%E6%9E%90/"},{"date":"2019-05-11","summary":"Netflix Blog - Tips for High Availability Spinnaker介绍 - 这篇文章Tips for High Availability 是出自 Netflix","tags":["ai"],"title":"Netflix Blog -  Tips for High Availability  Spinnaker介绍","url":"https://garlicspace.com/posts/netfllix-blog-tips-for-high-availability-spinnaker%E4%BB%8B%E7%BB%8D/"},{"date":"2019-05-11","summary":"shell中的 2\u003e\u00261 - strace跟踪应用程序时，有标准输出和错误输出，需要将程序执行的输出标准输出和错误输出重定向到一个日志文件中。","tags":["ai"],"title":"shell中的 2\u003e\u00261","url":"https://garlicspace.com/posts/shell%E4%B8%AD%E7%9A%84-21/"},{"date":"2019-04-30","summary":"LeetCode - Design Linked List - Photo by Tim Swaan on Unsplash","tags":[],"title":"LeetCode - Design Linked List","url":"https://garlicspace.com/posts/leetcode-design-linked-list/"},{"date":"2019-04-30","summary":"编程规范问题导致SIGCLD 屏蔽失效 - 进程出现\u003cdefunct\u003e状态进程，（zombie process ）。对于创建多进程的场景， 子进程状态改变产生此信号， 对SIGCLD信号处理不当，会导致僵尸进程。","tags":["linux","ai"],"title":"编程规范问题导致SIGCLD 屏蔽失效","url":"https://garlicspace.com/posts/sigcld-%E4%BF%A1%E5%8F%B7/"},{"date":"2019-04-28","summary":"linux 使用chage 设置密码永不过期 - vmware安装的虚拟机， 今天登录忽然提示“You must change your password now and login again!”， 密码过期了， 我登录设置了ssh免密登录， 输入原始密码，输入新密码后解决。修改成功登录后看了下，密码有效期60天。 通过chage 修改应用用户密码永不过期","tags":["linux","ai"],"title":"linux 使用chage 设置密码永不过期","url":"https://garlicspace.com/posts/linux-%E4%BD%BF%E7%94%A8chage-%E8%AE%BE%E7%BD%AE%E5%AF%86%E7%A0%81%E7%94%A8%E8%BF%87%E6%9C%9F/"},{"date":"2019-04-28","summary":"ramfs, rootfs and initramfs - 查找initramfs资料的时候看到了这篇文章 ramfs-rootfs-initramfs.txt，","tags":["kernel"],"title":"ramfs, rootfs and initramfs","url":"https://garlicspace.com/posts/ramfs-rootfs-and-initramfs/"},{"date":"2019-04-27","summary":"Given a singly linked list, determine if it is a palindrome.\nExample 1:\n1 2 Input: 1-\u0026gt;2 Output: false Example 2:\n1 2 Input: 1-\u0026gt;2-\u0026gt;2-\u0026gt;1 Output: true …","tags":[],"title":"LeetCode -  Palindrome Linked List","url":"https://garlicspace.com/posts/leetcode-palindrome-linked-list/"},{"date":"2019-04-26","summary":"关于鸟哥是如何解开 initramfs 的：） - 鸟哥解析 CentOS 7.x 的initramfs 档案内容 文章内容时， 主要疑问是为什么使用的是512bytes去算 “initramfs 档案的前置字元容量 ”的大小","tags":["linux","kernel"],"title":"关于鸟哥是如何解开 initramfs 的：）","url":"https://garlicspace.com/posts/%E5%85%B3%E4%BA%8E%E9%B8%9F%E5%93%A5%E6%98%AF%E5%A6%82%E4%BD%95%E8%A7%A3%E5%BC%80-initramfs-%E7%9A%84/"},{"date":"2019-04-23","summary":"initramfs 解压方法 - 最近在学习 _鸟哥私房菜第19章_，文章在分析Boot Loader 过程中， 提到到了虚拟档案系统Initial RAM Disk或Initial RAM Filesys","tags":["linux"],"title":"initramfs 解压方法","url":"https://garlicspace.com/posts/initramfs-%E8%A7%A3%E5%8E%8B/"},{"date":"2019-04-22","summary":"题目： Given an array of integers nums, write a method that returns the \u0026ldquo;pivot\u0026rdquo; index of this array.\nWe define the pivot index as the index where the …","tags":[],"title":"LeetCode - Find Pivot Index","url":"https://garlicspace.com/posts/leetcode-find-pivot-index/"},{"date":"2019-04-22","summary":"提升编程技巧的关键 - 这篇文章 The Key To Accelerating Your Coding Skills， 是皓哥推荐的文章。","tags":["ai"],"title":"提升编程技巧的关键","url":"https://garlicspace.com/posts/%E6%8F%90%E5%8D%87%E7%BC%96%E7%A8%8B%E6%8A%80%E5%B7%A7%E7%9A%84%E5%85%B3%E9%94%AE/"}]