<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[蔡超的专栏]]></title><description><![CDATA[架构师之路]]></description><link>https://blog.youkuaiyun.com/chaocai2004</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chaocai2004]]></copyright><item><title><![CDATA[让GPT学会使用工具，拓展技能]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/130310365</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/130310365</guid><author>chaocai2004</author><pubDate>Sat, 22 Apr 2023 21:01:07 +0800</pubDate><description><![CDATA[我们都清楚GPT的训练数据基于过去的信息，且或许并未涵盖您所需场景的所有相关数据。如何让GPT使用实时数据在你的场景中工作，并完成一些语言模型完成不了的事情，如：生产图片，启动机器。]]></description><category></category></item><item><title><![CDATA[Docker真的被Kubernetes放弃了吗？]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/111460657</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/111460657</guid><author>chaocai2004</author><pubDate>Sun, 20 Dec 2020 18:34:37 +0800</pubDate><description><![CDATA[引子

随着Kubernetes 1.20的发布，关于“kubernetes不再支持Docker！Docker不能用了！以前的Docker镜像不能用了！”等声音不绝于耳，事实真的是这样吗？



“Docker support in the kubelet is now deprecated and will be removed in a future release.

The kubelet uses a module called "dockershim" which implements C...]]></description><category></category></item><item><title><![CDATA[非技术随笔--“长期主义”真相与“复利”谎言]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/111460608</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/111460608</guid><author>chaocai2004</author><pubDate>Sun, 20 Dec 2020 18:30:19 +0800</pubDate><description><![CDATA[引子

“长期主义”，“复利谎言” 是最近商业及个人成长类文章中最热门的话题。近期又读了几篇推荐的相关好文，但做为一个彻底的唯物主义者，尤其深信邓小平同志的“实践是检验真理的唯一标准”，由于对文章作者不熟悉，所以对于文中的很多观点只能保持审慎怀疑的态度。不过在文章的阅读过程中的确让我联想到了一些曾经深深触动过我的，来自真正成功实践者（目前已是全球财富的前两名）的感悟以及在个人成长方面的切身体会。



长期与不变性

作为一个曾经的Amazon老员工，每当在Starbucks听道人们讨论对于下一个风口的预.]]></description><category></category></item><item><title><![CDATA[云端俭省之道 — 竞价实例篇]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/105580703</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/105580703</guid><author>chaocai2004</author><pubDate>Fri, 17 Apr 2020 15:06:49 +0800</pubDate><description><![CDATA[云端构建大规模系统的挑战

云计算平台“按需获取”的特性使得用户可以随时获取所需计算资源，实现计算资源与业务规模的动态匹配。云计算时代计算资源已不再是构建大规模系统的瓶颈，多数情况下成本成为了企业在构建大规模应用时的最大挑战。



如何降低云端系统的成本

降低云端系统的成本，最核心的就是要充分利用云计算的特点，尤其是“按需获取”和“按使用付费”。例如，根据业务量变化来及时伸缩计算资源就是常见...]]></description><category></category></item><item><title><![CDATA[高效并发模式 -- Half-Sync/Half-Async vs. Leader-Follower]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/104443875</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/104443875</guid><author>chaocai2004</author><pubDate>Sat, 22 Feb 2020 15:07:14 +0800</pubDate><description><![CDATA[并发是提高系统吞吐量的关键手段，但是构建高性能的并发系统并非易事。通过利用经典的模式可以使我们站在巨人的肩上，Half-Sync/Half-Async和Leader-Follower正是两种最经典的并发模式。

在实际中模式学习的难点往往在于好像看懂了，但是却总不能在正确的场景中使用。为了使大家能更好的理解和在实际中正确的使用这两种模式，下面将通过构建高性能网络通信的场景（Java NIO）来对模...]]></description><category></category></item><item><title><![CDATA[云原生定义解析—不可变基础设施 （immutable infrastructure)]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/103827372</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/103827372</guid><author>chaocai2004</author><pubDate>Fri, 03 Jan 2020 21:31:59 +0800</pubDate><description><![CDATA[云原生技术的不断发展，2018年，CNCF扩展了云原生技术的定义，以下是云原生技术的新定义：

“云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中，构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段，云原生技术使工程师们能够轻松地对系统作出频繁和可预测的重...]]></description><category></category></item><item><title><![CDATA[通过Kubernetes架构来重温一些经典理念]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/100166560</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/100166560</guid><author>chaocai2004</author><pubDate>Fri, 30 Aug 2019 21:43:20 +0800</pubDate><description><![CDATA[除了利用kubernetes来高效的管理我们的集群，通过分析和学习Kubernetes的内部架构，也会让我们重温很多架构设计的经典理念并看到他们在实际中的合理运用，为我们的架构设计工作带来启迪。]]></description><category></category></item><item><title><![CDATA[掌握Go语言要跨越的几个误区]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/88541574</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/88541574</guid><author>chaocai2004</author><pubDate>Wed, 13 Mar 2019 21:10:34 +0800</pubDate><description><![CDATA[课程链接：https://time.geekbang.org/course/intro/160
]]></description><category></category></item><item><title><![CDATA[是时候转向 Go 语言编程了]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/88372036</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/88372036</guid><author>chaocai2004</author><pubDate>Sat, 09 Mar 2019 21:48:59 +0800</pubDate><description><![CDATA[根据 3 月 2 日，Hired 发布的《2019 软件工程师状态》报告中指出，具有 Go 经验的候选人是迄今为止最具吸引力的，平均每位求职者会收到9 份面试邀请。



二、三、四分别是 Scala、Ruby 和 TypeScript。让人费解的是 Java 仅排在第九，平均每位求职者只能收到 6.5 份邀请。C++、C 和 C# 的邀请次数更低，垫底的 R 语言使用者甚至平均只能收 3 份。...]]></description><category></category></item><item><title><![CDATA[简化你的微服务开发]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/85725174</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/85725174</guid><author>chaocai2004</author><pubDate>Thu, 03 Jan 2019 22:22:18 +0800</pubDate><description><![CDATA[简化微服务开发，旨在减少你80%的工作量

开源项目https://github.com/easierway/service_decorators

 

Simplify microservice development

What’s the most complicated part of implementing a microservice except the core busines...]]></description><category></category></item><item><title><![CDATA[Simplify Transfer Learning (简化迁移学习）]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/78388663</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/78388663</guid><author>chaocai2004</author><pubDate>Sun, 29 Oct 2017 22:19:07 +0800</pubDate><description><![CDATA[深度神经网络在很多领域中都体现出了令人吃惊的能力。但是在实际工作中应用深度神经网络时，我们往往会遇到以下问题：
1. 缺乏标识数据。由于深度网络中存在大量权值，所以需要用大量的数据进行训练，通常是百万级的。然而实际工作中这样的标识数据往往有是非常有限的。
2. 难以确定适宜的网络结构。目前深度学习技术尚处于发展阶段，没有成熟的理论及方法来根据不同问题确定网络细节。例如，我们知道卷积神经网络在图像识别中较为有效，但我们并不知道适用于不同问题的网络结构，如层数。
迁移学习（Transfer learning) ]]></description><category></category></item><item><title><![CDATA[Moving to “Micro-service” and “Serverless”]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/77519709</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/77519709</guid><author>chaocai2004</author><pubDate>Thu, 24 Aug 2017 09:55:54 +0800</pubDate><description><![CDATA[本文是作者在AWS Summit 2017中的演讲总结，是亚马逊开发团队对于Microservice及Serverless架构的真实经验分享。]]></description><category></category></item><item><title><![CDATA[解密JVM GC]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/51172119</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/51172119</guid><author>chaocai2004</author><pubDate>Sun, 17 Apr 2016 10:42:17 +0800</pubDate><description><![CDATA[最受欢迎的Amazon培训视频之一。
详细介绍不同GC的工作原理，讲解GC过程分析和调优的基本方法。
并讲解了如何编写GC友好的代码]]></description><category></category></item><item><title><![CDATA[在Amazon Tech(o) 上的主题演讲－－软件致简之道]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/43338755</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/43338755</guid><author>chaocai2004</author><pubDate>Sat, 31 Jan 2015 09:05:58 +0800</pubDate><description><![CDATA[来自资深软件架构师的经验和感悟分享。演讲者蔡超拥有十多年软件开发经验，曾任天融信安全管平台架构师，HP软件架构师等，现为亚马逊中国资深工程师.]]></description><category></category></item><item><title><![CDATA[XPath implementation in Clojure]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/8071919</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/8071919</guid><author>chaocai2004</author><pubDate>Mon, 15 Oct 2012 10:15:40 +0800</pubDate><description><![CDATA[The functions to support using XPath in Clojure.
Source Code

 1 ;The code was implemented by caichao@amazon.com
 2 ;You could use the code anyway, but should keep the comments
 3 ;Created 2012.1]]></description><category></category></item><item><title><![CDATA[The Clojure Program To solve N Queens Problem]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/7833427</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/7833427</guid><author>chaocai2004</author><pubDate>Sun, 05 Aug 2012 23:20:40 +0800</pubDate><description><![CDATA[The following program is about solving N-Queens problem (http://en.wikipedia.org/wiki/Eight_queens_puzzle) by Clojure. If you have the better solution in Clojure or Haskell, welcome to provide your so]]></description><category></category></item><item><title><![CDATA[JBehave in Practice]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/6209602</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/6209602</guid><author>chaocai2004</author><pubDate>Sat, 26 Feb 2011 14:02:00 +0800</pubDate><description><![CDATA[ATDD (Acceptance Test Driven Development) is the extension of TDD, which helps us deliver exactly what the customer wants. Now ATDD has already been the hot spot in the software development world. There are several variations of ATDD including BDD, EDD and]]></description><category></category></item><item><title><![CDATA[TDD Tips]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/6125479</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/6125479</guid><author>chaocai2004</author><pubDate>Sun, 09 Jan 2011 17:29:00 +0800</pubDate><description><![CDATA[How to design the testable software? You may always find some best practices about designing for scalable, extensible or maintainable. To be testable, the best way should be TDD. Followings are some tips from my real practices on TDD.]]></description><category></category></item><item><title><![CDATA[弹性编程原则]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/4552575</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/4552575</guid><author>chaocai2004</author><pubDate>Mon, 14 Sep 2009 20:38:00 +0800</pubDate><description><![CDATA[1 SRPSRP(Single Responsible Principle), 单一职责原则，这是面对的最基本原则，也是实现弹性设计的最基本原则。每个类或接口定义应该只包含一种明确的职责，同时仅有一种原因会导致这种定义的修改。一个复杂的类或接口的定义包含多个责任，很容易使你的设计失去弹性，很多因素都会导致这个类或接口的变更，由于它含有多种职责，这就意味着它是多种服务的提供者，会有多种依赖于]]></description><category></category></item><item><title><![CDATA[DSL的实现要点(2)]]></title><link>https://blog.youkuaiyun.com/chaocai2004/article/details/4483709</link><guid>https://blog.youkuaiyun.com/chaocai2004/article/details/4483709</guid><author>chaocai2004</author><pubDate>Tue, 25 Aug 2009 16:32:00 +0800</pubDate><description><![CDATA[ 实现外部DSL与上一篇中所提及内部DSL不同，使用者不是通过API调用来使用DSL，而是通过我们定义的特定语法的领域语言来使用DSL。1 XML形式的DSL脚本文件process name="Auto-Door">      state name="Open">            transition event="time-out" next_state="Cl]]></description><category></category></item></channel></rss>