<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>while True: learn()</title>
    <link>/feed.xml</link>
    <description>Recent content on while True: learn()</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-CN</language>
    <lastBuildDate>Mon, 15 May 2023 00:00:00 +0000</lastBuildDate><atom:link href="/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>TLS 双向认证详解：理论、实践和在 Kubernetes 中的应用</title>
      <link>/post/tls/tls-%E5%8F%8C%E5%90%91%E8%AE%A4%E8%AF%81%E8%AF%A6%E8%A7%A3%E7%90%86%E8%AE%BA%E5%AE%9E%E8%B7%B5%E5%92%8C%E5%9C%A8-kubernetes-%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8/</link>
      <pubDate>Mon, 15 May 2023 00:00:00 +0000</pubDate>
      
      <guid>/post/tls/tls-%E5%8F%8C%E5%90%91%E8%AE%A4%E8%AF%81%E8%AF%A6%E8%A7%A3%E7%90%86%E8%AE%BA%E5%AE%9E%E8%B7%B5%E5%92%8C%E5%9C%A8-kubernetes-%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8/</guid>
      <description>摘要 本文深入探讨了 TLS 双向认证的原理、实践和在 Kubernetes 中的应用。文章详细介绍了 TLS 双向认证中协议自动认证的信息、应用程序代码中需要认证的内容、TLS 和</description>
    </item>
    
    <item>
      <title>Kubernete DNS 原理解释</title>
      <link>/post/kubernetes/k8s-dns-introduction/</link>
      <pubDate>Fri, 01 Oct 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/kubernetes/k8s-dns-introduction/</guid>
      <description>k8s dns 基础文档参见 https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/ 下面是在此基础文档之上的补充 原理解释 假设有一个叫做 foo 的 svc 部署在 default ns 中，下面所有的解释都以这个 foo 为例进行说明。 Kubernetes 集群 Pod /etc/resolv.conf 配置</description>
    </item>
    
    <item>
      <title>kubectl 常见用法备忘录</title>
      <link>/post/kubernetes/k8s-kubectl-use-example/</link>
      <pubDate>Tue, 28 Sep 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/kubernetes/k8s-kubectl-use-example/</guid>
      <description>kubectl 备忘录 kubectl 备忘单 https://kubernetes.io/zh/docs/reference/kubectl/cheatsheet/ 等待 k8s 资源达到某个状态 kubectl wait --for condition=established --timeout=90s crd -lproduct=foo kubectl -n ambassador wait --for condition=available --timeout=90s deploy -lproduct=foo 提交 yaml 字符串到 k8s cat &amp;lt;&amp;lt;-EOF | kubectl apply -f - apiVersion: v1 kind: Service metadata: name: quote spec: ports: - name: http port: 80 targetPort: 8080 selector: app: quote</description>
    </item>
    
    <item>
      <title>初始化 kubeclient</title>
      <link>/post/kubernetes/k8s-init-kubeclient/</link>
      <pubDate>Thu, 09 Sep 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/kubernetes/k8s-init-kubeclient/</guid>
      <description>整体介绍 初始化 go client 并获取 default ns 下的所有 pod package k8s import ( &amp;#34;context&amp;#34; &amp;#34;fmt&amp;#34; &amp;#34;log&amp;#34; &amp;#34;os&amp;#34; &amp;#34;os/user&amp;#34; &amp;#34;path/filepath&amp;#34; &amp;#34;testing&amp;#34; metav1 &amp;#34;k8s.io/apimachinery/pkg/apis/meta/v1&amp;#34; &amp;#34;k8s.io/client-go/kubernetes&amp;#34; &amp;#34;k8s.io/client-go/rest&amp;#34; &amp;#34;k8s.io/client-go/tools/clientcmd&amp;#34; ) func TestKubeclient(t *testing.T) { cliConfig, err := GetConfig(&amp;#34;&amp;#34;, &amp;#34;&amp;#34;) if err != nil { log.Fatalf(&amp;#34;new kube client error: %v&amp;#34;, err) } kubecli, err := kubernetes.NewForConfig(cliConfig) if err != nil { log.Fatalf(&amp;#34;NewForConfig error: %v&amp;#34;, err)</description>
    </item>
    
    <item>
      <title>k8s demo</title>
      <link>/post/kubernetes/k8s-%E5%B8%B8%E7%94%A8-demo/</link>
      <pubDate>Sun, 30 May 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/kubernetes/k8s-%E5%B8%B8%E7%94%A8-demo/</guid>
      <description>Kubernetes 已经成为云原生上云的标准，Kubernetes 包含很多资源，每一个资源包含很多字段，几乎不可能记住所有的字段。而我们又要经常手动提交一些资</description>
    </item>
    
    <item>
      <title>kubectl patch</title>
      <link>/post/kubernetes/k8s-kubectl-patch/</link>
      <pubDate>Sun, 30 May 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/kubernetes/k8s-kubectl-patch/</guid>
      <description>Kubernetes 的整体架构是面向 kube-apiserver 的终太配置，所以 Controller 都是通过 list watch api 中的资源状态做出相应的终太配置。Kubernetes 除了可以通过 sdk 调用 api 以外还能通过 kubectl 提</description>
    </item>
    
    <item>
      <title>client-go check version</title>
      <link>/post/kubernetes/k8s-client-go-check-k8s-version/</link>
      <pubDate>Fri, 28 May 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/kubernetes/k8s-client-go-check-k8s-version/</guid>
      <description>Kubernetes 版本检测 client-go 获取 Kubernetes 版本，并检测当前的版本是否满足要求。比如 k8s 里有些功能从某一个版本才开始支持、有些资源从某一个版本开始就不再支持等。Cont</description>
    </item>
    
    <item>
      <title>k8s wait 函数库介绍</title>
      <link>/post/kubernetes/k8s-k8s.io-apimachinery-pkg-util-wait/</link>
      <pubDate>Fri, 28 May 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/kubernetes/k8s-k8s.io-apimachinery-pkg-util-wait/</guid>
      <description>k8s wait 函数库介绍 k8s.io/apimachinery/pkg/util/wait 是 k8s 封装的很好的一个工具库，里面有很多 wait 的设计模式。下面列举了这个函数库中常见的用法。其中 PollImmediate 是用的比较多的方法，PollIm</description>
    </item>
    
    <item>
      <title>client go get logs</title>
      <link>/post/kubernetes/k8s-client-go-get-logs/</link>
      <pubDate>Thu, 27 May 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/kubernetes/k8s-client-go-get-logs/</guid>
      <description>client go 获取 pod 日志的方法 通过 kubectl logs 获取 pod 日志大家基本都用过，但一般不会通过 client go 获取 pod 信息，所以这种用法很多人都比较生疏，下面给出一个通过 client go 获取 pod</description>
    </item>
    
    <item>
      <title>如何获取一个文件的某几行</title>
      <link>/post/bash/bash-get-file-some-lines/</link>
      <pubDate>Wed, 26 May 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/bash/bash-get-file-some-lines/</guid>
      <description>用 sed 命令 sed -n &amp;lsquo;5,10p&amp;rsquo; filename # 这样你就可以只查看文件的第 5 行到第 10 行。 用 head 和 tail 命令组合 tail 和 head 的几个关键参数 tail -n 1000：显示最后 1000 行 tail -n +1000：从 1000</description>
    </item>
    
    <item>
      <title>遍历文件内容</title>
      <link>/post/bash/bash-looping-through-the-content-of-a-file-in-bash/</link>
      <pubDate>Wed, 26 May 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/bash/bash-looping-through-the-content-of-a-file-in-bash/</guid>
      <description>遍历文件内容 很多时候我们需要在 bash 里面遍历文件内容，并且对每一个行做一个处理动作。本篇就整理一下 bash 中常见的遍历文件的方法。 通过 while 循环读取文件内</description>
    </item>
    
    <item>
      <title>bash 操作</title>
      <link>/post/bash/bash-string-ops/</link>
      <pubDate>Mon, 24 May 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/bash/bash-string-ops/</guid>
      <description>在编写 bash 脚本的时候经常需要进行字符串比较，常用的方法有：比较是否相等、比较是否包含子字符串、判断前缀或者后缀匹配等。本篇就详细介绍一下常见的</description>
    </item>
    
    <item>
      <title>go mergo 介绍</title>
      <link>/post/daily/mergo/</link>
      <pubDate>Fri, 14 May 2021 06:53:50 +0000</pubDate>
      
      <guid>/post/daily/mergo/</guid>
      <description>Golang 日常开发的时，有时候需要做 Map 和 Struct Object 对象的赋值转换，比如 Nginx Ingress Controller 中 Annotation 就是从 Map 转换成一个内部的 Ingress 对象。 除了 Object 和 Map 的相互转换还有切换合并、空值覆盖</description>
    </item>
    
    <item>
      <title>git</title>
      <link>/post/git/git/</link>
      <pubDate>Thu, 13 May 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/git/git/</guid>
      <description>git clone 仅 clone 指定分支到本地 git clone 默认会把整个 repository 的内容都 clone 到本地，而有些 repository 是很大的。repository 很大大多是因为太多历史分支没有清理，而如果想</description>
    </item>
    
    <item>
      <title>iterm2 常用快捷键</title>
      <link>/post/daily/mac-iterm2-config/</link>
      <pubDate>Thu, 13 May 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/daily/mac-iterm2-config/</guid>
      <description>iterm2 常用快捷键 command + t：新建窗口 command + d 垂直分屏， command + shift + d 水平分屏。 command + ] 和command + [ 在最近使用的分屏直接切换. command + alt + 方向键：切换到指</description>
    </item>
    
    <item>
      <title>Golang sync.Map 使用介绍</title>
      <link>/post/go/sync-map/</link>
      <pubDate>Fri, 24 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>/post/go/sync-map/</guid>
      <description>目录 背景介绍 sync.Map 常用使用方法 sync.Map 效率 背景介绍 日常编程经常用到 key、value 的数据结果，在 Golang 里面就是 map。而 Golang 中的 map 默认是不能用于多 goroutine 同时读</description>
    </item>
    
    <item>
      <title>如对本地分支和远程分支进行重命名</title>
      <link>/post/git/git-rename-local-and-remote-git-branch/</link>
      <pubDate>Tue, 21 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>/post/git/git-rename-local-and-remote-git-branch/</guid>
      <description>新开一个 git 分支开发一个特性，开发完成以后再 merge 到主干分支。这个操作方法相信大家都不陌生。但如果在开发的过程中发现分支的名字并不合适，想要换一个</description>
    </item>
    
    <item>
      <title>Kubernetes Service 的奇思妙用</title>
      <link>/post/daily/kube-service-wonderful-case/</link>
      <pubDate>Mon, 20 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>/post/daily/kube-service-wonderful-case/</guid>
      <description>目录 序 Service 的常规模式 奇思妙用 小结 序 Kubernetes Pods 是有生命周期的。Pod 随时都有可能被创建或这销毁。比如如果使用 Deployment 来运行应用程序，则它可以动态创建和销毁 P</description>
    </item>
    
    <item>
      <title>在 Kubernetes 中一键部署 haproxy 服务</title>
      <link>/post/daily/kube-haproxy/</link>
      <pubDate>Sun, 19 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>/post/daily/kube-haproxy/</guid>
      <description>目录 序 tcp 代理配置 Deployment 配置 序 haproxy 是一款常用的 tcp、http 代理软件。本案例给出一个在 Kubernetes 中快速部署 haproxy 的方法，方便在 Kubernetes 中快速使用 haproxy 的代理服务。 创建配</description>
    </item>
    
    <item>
      <title>Bash 入门指南：在 Bash 中操作整数的基本技巧</title>
      <link>/post/bash/bash-integer-comparison-guide.md/</link>
      <pubDate>Fri, 03 Jun 2016 00:00:00 +0000</pubDate>
      
      <guid>/post/bash/bash-integer-comparison-guide.md/</guid>
      <description>Bash 是一种强大的命令行解释器和脚本语言，可以用于各种系统管理和自动化任务。对于初学者来说，理解如何在 Bash 中进行整数比较操作是一个重要的基础知识。</description>
    </item>
    
    <item>
      <title>curl 初学者入门, -i -v 参数解析</title>
      <link>/post/bash/curl_beginner_guide.md/</link>
      <pubDate>Fri, 27 May 2016 00:00:00 +0000</pubDate>
      
      <guid>/post/bash/curl_beginner_guide.md/</guid>
      <description>当初学者接触命令行工具时，curl 是一个非常有用的工具，它可以帮助你发送 HTTP 请求并获取响应。在本篇博客中，我将介绍 curl 命令的一些基本用法，并解释</description>
    </item>
    
    <item>
      <title>Git Rebase: 合并历史提交</title>
      <link>/post/git/git-rebase/</link>
      <pubDate>Wed, 25 May 2016 00:00:00 +0000</pubDate>
      
      <guid>/post/git/git-rebase/</guid>
      <description>在 Git 中，我们经常会提交多次本地提交，然后将这些提交推送到公共仓库。然而，为了保持提交历史的简洁性和可读性，我们可能希望将多个连续的提交合并为</description>
    </item>
    
    <item>
      <title>如何比较两个 Git 分支</title>
      <link>/post/git/git-how-to-compare-two-git-branches/</link>
      <pubDate>Thu, 28 Apr 2016 00:00:00 +0000</pubDate>
      
      <guid>/post/git/git-how-to-compare-two-git-branches/</guid>
      <description>在使用 Git 进行开发时，通常会使用不同的分支，以便将工作与主代码库清晰地分隔开来。然而，在使用这些分支进行开发时，您可能希望合并分支，将最终的工</description>
    </item>
    
    <item>
      <title>Docker初学者指南：基于代码构建镜像并推送到阿里云ACR镜像仓库</title>
      <link>/post/kubernetes/docker-build-push/</link>
      <pubDate>Fri, 22 Apr 2016 00:00:00 +0000</pubDate>
      
      <guid>/post/kubernetes/docker-build-push/</guid>
      <description>Docker是一种流行的容器化平台，可用于构建、打包和分发应用程序。在本教程中，我们将向您展示如何基于代码构建Docker镜像，并将其推送到</description>
    </item>
    
    <item>
      <title>openssl 生成证书脚本</title>
      <link>/post/tls/openssl-create-cert/</link>
      <pubDate>Wed, 23 Mar 2016 00:00:00 +0000</pubDate>
      
      <guid>/post/tls/openssl-create-cert/</guid>
      <description>在工作中经常需要生成一些 tls 证书, 下面给出一套生成证书的脚本和配置. 这套脚本有三个文件,分别是 gencerts.sh 、openssl_client.cnf 和 openssl_server.cnf 这三</description>
    </item>
    
    <item>
      <title>about</title>
      <link>/about/</link>
      <pubDate>Sun, 20 Mar 2016 23:28:02 +0800</pubDate>
      
      <guid>/about/</guid>
      <description>关于 Hugo 主题 balabalbalbalbal&amp;hellip;</description>
    </item>
    
    <item>
      <title>Mac 开机启动配置</title>
      <link>/post/daily/mac-auto_start/</link>
      <pubDate>Wed, 04 Nov 2015 00:00:00 +0000</pubDate>
      
      <guid>/post/daily/mac-auto_start/</guid>
      <description>几处可以配置开机启动的位置 Unix系统级别的启动脚本 /etc/mach_init.d/ /etc/mach_init_per_user.d/ /etc/mach_init_per_login_session.d/ 在这3个目录下面的启动脚本将在系统初始化阶段执行 OSX级别启动脚本 /System/Library/StartupItems/ ~/Library/StartupItems/ OSX级别启</description>
    </item>
    
    <item>
      <title>Mac Tips</title>
      <link>/post/daily/mac-tips/</link>
      <pubDate>Sun, 02 Aug 2015 00:00:00 +0000</pubDate>
      
      <guid>/post/daily/mac-tips/</guid>
      <description>屏幕截图 系统软件截图 Cmd+Shift+3：全屏截图；截取整个屏幕，保存截图至桌面文件夹。 Cmd+Shift+4：区域截图；鼠标光标变成带坐</description>
    </item>
    
    <item>
      <title>为什么要用 systemd 替换 Sysvinit</title>
      <link>/post/daily/systemd-intorduce/</link>
      <pubDate>Mon, 27 Jul 2015 00:00:00 +0000</pubDate>
      
      <guid>/post/daily/systemd-intorduce/</guid>
      <description>目录 序 Sysvinit 示例 systemd 介绍 systemd 特点 systemd 必知必会 序 在 CentOS 6 之前的版本, 如果想要开机启动某些系统服务, 比如 Apache 、MySql 之类的服务, 那就需要编写 init 脚本才能实现</description>
    </item>
    
    <item>
      <title>在本地搭建一个 etcd 集群</title>
      <link>/post/coreos/create-etcd-cluster/</link>
      <pubDate>Fri, 24 Jul 2015 00:00:00 +0000</pubDate>
      
      <guid>/post/coreos/create-etcd-cluster/</guid>
      <description>目录 基本概念 CoreOS/etcd/ 在本地构建一个 CoreOS 集群 初始化 etcd 参考文献 基本概念 CoreOS/etcd/ CoreOS 是一个基于 Docker 的轻量级容器化 Linux 发行版，专为大型数据中心而设计，旨在通过轻量的系统</description>
    </item>
    
    <item>
      <title>部署一个 hello word fleet 集群</title>
      <link>/post/coreos/fleet-cluster-ctrl-coreos/</link>
      <pubDate>Fri, 24 Jul 2015 00:00:00 +0000</pubDate>
      
      <guid>/post/coreos/fleet-cluster-ctrl-coreos/</guid>
      <description>目录 fleet 介绍 fleet 集群依赖介绍 部署 etcd 集群 fleet 使用示例 参考文献 fleet 介绍 fleet 集群组成部分 fleet 集群主要由 etcd 集群 fleed 守护进程和 Systemd 组成, 其中: etcd 主要用户集群共享配置和</description>
    </item>
    
    <item>
      <title>使用 CoreOS Docker 搭建 WordPress</title>
      <link>/post/daily/start_up_wordpress_on_coreos_ecs/</link>
      <pubDate>Sun, 19 Jul 2015 00:00:00 +0000</pubDate>
      
      <guid>/post/daily/start_up_wordpress_on_coreos_ecs/</guid>
      <description>目录 说明 创建 ECS 启动 MySql 容器 启动 WordPress 容器 参考文献 说明 本 Blog 基于 Docker 搭建, 下面介绍搭建过程. WordPress Docker CoreOS 和 阿里云 ECS 相信大家都知道了, 本文采用阿里云 ECS 搭建一个 WordPress</description>
    </item>
    
    <item>
      <title>PhantomJS 介绍</title>
      <link>/post/daily/phantomjs-introduce/</link>
      <pubDate>Sun, 26 Apr 2015 00:00:00 +0000</pubDate>
      
      <guid>/post/daily/phantomjs-introduce/</guid>
      <description>目录 PhantomJS 是什么 PhantomJS 能做什么 安装 hello world 自动投票示例介绍 PhantomJS 是什么 官方首页 简单的来说 PhantomJS 就是一个无界面的 webkit. 官方介绍如下 PhantomJS is a headless WebKit scriptable with a JavaScript API. It has fast and native support for various</description>
    </item>
    
    <item>
      <title>reveal.js 开机启动</title>
      <link>/post/daily/reveal.js-autostart/</link>
      <pubDate>Sun, 26 Apr 2015 00:00:00 +0000</pubDate>
      
      <guid>/post/daily/reveal.js-autostart/</guid>
      <description>#cat reveal.conf start on stopped rc RUNLEVEL=[2345] respawn exec python /root/jike/work/github/reveal.js/l-start.py &amp;gt;/dev/null 2&amp;gt;&amp;amp;1</description>
    </item>
    
    <item>
      <title>Idea 介绍</title>
      <link>/post/daily/mac-config-idea/</link>
      <pubDate>Fri, 12 Dec 2014 00:00:00 +0000</pubDate>
      
      <guid>/post/daily/mac-config-idea/</guid>
      <description>目录 序 下载 idea 下载 Jdk 配置 Java 环境 下载 tomcat 导入一个 Maven 项目 参考文献 序 Idea 是一个非常强大的 IDE. 要比古老的 Eclipse 先进很多. 特别是在 Mac 下面的表现, 一些大一点儿的项目</description>
    </item>
    
    <item>
      <title>Java 入门</title>
      <link>/post/java/java-guide/</link>
      <pubDate>Wed, 03 Dec 2014 00:00:00 +0000</pubDate>
      
      <guid>/post/java/java-guide/</guid>
      <description>基本语法 hello world 变量 引号 单引号引的数据 是char类型的 双引号引的数据 是String类型的 单引号只能引一个字符 而双引号可以引0个及其以上 在这里的单</description>
    </item>
    
    <item>
      <title>Django guide</title>
      <link>/post/daily/django-introduce/</link>
      <pubDate>Thu, 20 Nov 2014 00:00:00 +0000</pubDate>
      
      <guid>/post/daily/django-introduce/</guid>
      <description>Django guide create a project django-admin.py startproject mysite This will create a mysite directory in your current directory. Let’s look at what startproject created: mysite/ manage.py mysite/ __init__.py settings.py urls.py wsgi.py These files are: The outer mysite/ directory is just a container for your project. Its name doesn’t matter to Django; you can rename it to anything you like. manage.py:</description>
    </item>
    
    <item>
      <title>SaltStack 入门</title>
      <link>/post/daily/salt_introduce/</link>
      <pubDate>Wed, 19 Nov 2014 00:00:00 +0000</pubDate>
      
      <guid>/post/daily/salt_introduce/</guid>
      <description>Salt 入门 2014-11-16 冬岛 目录 Installation Config 授权 Target Command Line Top file States Grains Pillar Node Group Jobs Schedule jobs 参考文献 Installation Installation Config Configuring Salt master Configuring the Salt Master /etc/salt/master interface: 0.0.0.0 发布任务 4505 接收返回结果 4506 minion Configuring the Salt Minion /etc/salt/minion master: 10.0.0.1 授权 [root@master ~]# salt-key -L Unaccepted Keys:</description>
    </item>
    
    <item>
      <title>Kubernetes 试玩</title>
      <link>/post/daily/kubernetes-install/</link>
      <pubDate>Sun, 28 Sep 2014 00:00:00 +0000</pubDate>
      
      <guid>/post/daily/kubernetes-install/</guid>
      <description>创建 web server Docker image [root@iZ28rwzcvjoZ mywebcontainer]# vim Dockerfile [root@iZ28rwzcvjoZ mywebcontainer]# docker build -t webwithdb . Sending build context to Docker daemon 14.85 kB Sending build context to Docker daemon Step 0 : FROM centos:latest latest: Pulling from docker.io/centos f1b10cd84249: Pull complete c852f6d61e65: Pull complete 7322fbe74aa5: Already exists docker.io/centos:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be</description>
    </item>
    
    <item>
      <title>Go Struct</title>
      <link>/post/go/struct/</link>
      <pubDate>Sun, 06 Jul 2014 00:00:00 +0000</pubDate>
      
      <guid>/post/go/struct/</guid>
      <description>go struct 2014-07-06 目录 基本概念 扩展、继承 Struct Field 结构 Struct tag Struct 高级用法 基本概念 定义一个 struct type Circle struct { x float64 y float64 r float64 } type Circle struct { x, y, r float64 } 初始化 type Circle struct { x float64 y float64 r float64 } var c</description>
    </item>
    
    <item>
      <title>Go channel</title>
      <link>/post/go/channel/</link>
      <pubDate>Fri, 27 Jun 2014 00:00:00 +0000</pubDate>
      
      <guid>/post/go/channel/</guid>
      <description>chan 2014-06-27 目录 channel 基本介绍 channel 高级用法 sync 简介 管道 channel 和锁混用时的隐患 参考文献 chan 基本介绍 1 ic := make(chan int) //a channel that can send and receive an int 2 sc := make(chan string) //a channel hat can send and receive a string 3 myc := make (chan</description>
    </item>
    
    <item>
      <title>Go 数据类型</title>
      <link>/post/go/data-struct/</link>
      <pubDate>Wed, 25 Jun 2014 00:00:00 +0000</pubDate>
      
      <guid>/post/go/data-struct/</guid>
      <description>数据类型 2014-06-25 目录 数组 值和指针 slice 结构 go 数据类型举例 参考文献 数组 数组有两个关键属性: 数据类型 长度 数组的长度是固定的, 一旦设定就不能修改, 长度也数据</description>
    </item>
    
    <item>
      <title>Go 内存模型</title>
      <link>/post/go/mem/</link>
      <pubDate>Mon, 23 Jun 2014 00:00:00 +0000</pubDate>
      
      <guid>/post/go/mem/</guid>
      <description>go 内存模型 2014-06-23 目录 简单说明 线程和 goroutine 比较 之前发生 错误的同步 参考文档 简单说明 这篇 Go 的内存模型是来阐述，在一个 goroutine 中写入的一个变量的值在何种情况下会被</description>
    </item>
    
    <item>
      <title>ack 拦截</title>
      <link>/post/daily/ack_ljjx/</link>
      <pubDate>Mon, 21 Apr 2014 00:00:00 +0000</pubDate>
      
      <guid>/post/daily/ack_ljjx/</guid>
      <description>在实际的运维工作中发现有一些设备设备始终无法通过 tcp 向中央汇报数据，起初以为是程序本身的逻辑错误或者负载问题导致的不能正常汇报数据。后来经过分</description>
    </item>
    
    <item>
      <title>使用阿里云和 webluker 搭建自己的免费 CDN 系统</title>
      <link>/post/daily/dajm_mmfz_cdn/</link>
      <pubDate>Mon, 21 Apr 2014 00:00:00 +0000</pubDate>
      
      <guid>/post/daily/dajm_mmfz_cdn/</guid>
      <description>虽然 CDN 技术目前已经很成熟，而且互联网公司都在使用 CDN 加速自己的应用。可是作为个人来讲 CDN 服务还是显示的太专业。需要花费很多时间和精力与 CDN 提供商联</description>
    </item>
    
  </channel>
</rss>
