实战项目:通过自我学习让AI学习五子棋 - 1 - 项目定义 本文是一个实战项目的第一篇文章。该实战项目尝试构造一个应用,该应用可以通过自我对弈训练AI学会五子棋的下法。在本文中我们介绍了该项目的想法,定义了项目需求,我们打算尝试的算法。
分布式系统及其优点 分布式系统(distributed system)是现在广泛使用的系统设计和实现技术。在前面所写的一些文章中,我们讨论了一些在分布式系统中可能会遇到的某些问题,以及我们所考虑的解决方案。在本文中,我们将介绍什么是分布式系统以及分布式系统的优点和挑战。
使用Python进行股票分析(2) 我们在之前的文章《使用Python进行股票分析(1)》中,通过自动获取股票的历史数据,然后选择在一定时间内处于上涨的股票作为我们投资的标的。在本文中,我们进一步通过分析股票的短期趋势,选择处于短期上涨趋势的股票,进一步筛选我们的理想投资标的。
使用Python进行股票分析(1) Python具有非常好的数据分析和数据可视化的功能。在本文中,我们将通过使用Python获取股票的闭市价格,并且对股票价格进行分析和可视化,并且定义了一种简单的股票交易策略向我们提供买卖股票的依据。
在分布式环境中使用状态机支持数据的一致性 在本文中,我们将介绍如何在分布式系统中使用transaction以及分布式系统中transaction的局限性。然后我们通过一个具体的例子,介绍了一种通过设计状态机来避免使用transaction的方法。
通过写代码学习AWS DynamoDB (3)- 一致性hash 我们在本文中介绍了一致性hash的概念,并且在我们的DDB的模拟实现中实现了一个简单版本的一致性hash的partition管理者类。然后我们讨论了一些和一致性hash有关的问题。
关于在分布式环境中RVN和使用场景的介绍3 我们在收到一条待处理的事件时,需要检查该事件的RVN是否已经太旧。如果该事件的RVN已经太旧,我们就不再处理该事件,并且丢弃该事件。通过这个逻辑,我们可以保障在分布式环境中正确的处理消息的乱序,丢失,和重复等问题。就这个逻辑本身而言是非常简单的。但是我们现在要考虑到分布式环境中所有的消息处理都是并行的,我们需要小心的检查这个逻辑的实现。在本文中,我们讨论一下如何在分布式环境中正确的处理这个逻辑。
通过写代码学习AWS DynamoDB (2) 在上一篇文章里,我们实现了DDB的基本API。在本文中,我们将进一步增强该DDB的模拟实现,给DDB加入Partition。我们简单介绍一下Shard和Parition的概念。然后我们会在DDB的实现中加上一个简单的Parition的实现。
通过写代码学习AWS DynamoDB(1) 我们通过模拟一个简单的DDB的实现,可以更好的理解某些分布式系统中的设计是如何工作的。在本文中我们首先用python实现DDB的最基本的API,包括table有关的API,和table本身的API。这些实现作为后续进一步加强功能的基础。