自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (2)
  • 收藏
  • 关注

原创 分布式系统及其优点

分布式系统(distributed system)是现在广泛使用的系统设计和实现技术。在前面所写的一些文章中,我们讨论了一些在分布式系统中可能会遇到的某些问题,以及我们所考虑的解决方案。在本文中,我们将介绍什么是分布式系统以及分布式系统的优点和挑战。

2024-03-25 10:36:17 752

原创 使用Python进行股票分析(2)

我们在之前的文章《使用Python进行股票分析(1)》中,通过自动获取股票的历史数据,然后选择在一定时间内处于上涨的股票作为我们投资的标的。在本文中,我们进一步通过分析股票的短期趋势,选择处于短期上涨趋势的股票,进一步筛选我们的理想投资标的。

2024-03-25 07:50:07 688

原创 使用Python进行股票分析(1)

Python具有非常好的数据分析和数据可视化的功能。在本文中,我们将通过使用Python获取股票的闭市价格,并且对股票价格进行分析和可视化,并且定义了一种简单的股票交易策略向我们提供买卖股票的依据。

2024-03-08 11:51:32 823

原创 在分布式环境中使用状态机支持数据的一致性

在本文中,我们将介绍如何在分布式系统中使用transaction以及分布式系统中transaction的局限性。然后我们通过一个具体的例子,介绍了一种通过设计状态机来避免使用transaction的方法。

2024-03-08 02:53:17 1457

原创 关于在分布式环境中RVN和使用场景的介绍4

在本文中,我们介绍了在分布式环境中基于RVN可以解决的一类新的问题,也就是防止多个请求同时修改一条记录而互相覆盖的问题,并且探讨了基于该问题的扩展情况。

2024-02-22 07:24:46 1093

原创 通过写代码学习AWS DynamoDB (3)- 一致性hash

我们在本文中介绍了一致性hash的概念,并且在我们的DDB的模拟实现中实现了一个简单版本的一致性hash的partition管理者类。然后我们讨论了一些和一致性hash有关的问题。

2024-02-17 02:56:35 1054

原创 关于在分布式环境中RVN和使用场景的介绍3

我们在收到一条待处理的事件时,需要检查该事件的RVN是否已经太旧。如果该事件的RVN已经太旧,我们就不再处理该事件,并且丢弃该事件。通过这个逻辑,我们可以保障在分布式环境中正确的处理消息的乱序,丢失,和重复等问题。就这个逻辑本身而言是非常简单的。但是我们现在要考虑到分布式环境中所有的消息处理都是并行的,我们需要小心的检查这个逻辑的实现。在本文中,我们讨论一下如何在分布式环境中正确的处理这个逻辑。

2024-02-13 08:29:24 964

原创 使用No-SQL数据库支持连接查询用例的讨论

在本文中我们介绍了什么是No-SQL数据库。并且讨论了如何使用key-value数据库来解决连接查询的问题。

2024-02-06 15:54:28 1315

原创 关于在分布式环境中RVN和使用场景的介绍2

在本文中,我们继续讨论了对于分布式系统中RVN的使用技巧,及其被用来解决一类特殊的由hot primary key消息引起的性能问题的使用方法和细节。

2024-01-30 08:40:54 630

原创 通过写代码学习AWS DynamoDB (2)

​在上一篇文章里,我们实现了DDB的基本API。在本文中,我们将进一步增强该DDB的模拟实现,给DDB加入Partition。我们简单介绍一下Shard和Parition的概念。然后我们会在DDB的实现中加上一个简单的Parition的实现。

2024-01-27 02:37:19 933

原创 通过写代码学习AWS DynamoDB(1)

我们通过模拟一个简单的DDB的实现,可以更好的理解某些分布式系统中的设计是如何工作的。在本文中我们首先用python实现DDB的最基本的API,包括table有关的API,和table本身的API。这些实现作为后续进一步加强功能的基础。

2024-01-26 03:14:30 346

原创 关于在分布式环境中RVN和使用场景的介绍1

我们首先介绍一下分布式环境中开发会遇到的一类问题,然后介绍什么是RVN以及怎么样使用RVN来解决该类问题。最后我们会介绍一下RVN的典型使用用例。

2024-01-24 04:32:14 407

原创 基于最终收敛的分布式系统设计讨论2

本文对于分布式系统中对于数据进行更新时出现的数据不一致的问题和解决方案进行描述和讨论。同时进一步描述了更多有关的技术问题。

2024-01-22 16:21:46 384

原创 基于最终收敛的分布式系统设计讨论1

本文就分布式系统设计中有关于一致性问题的某一种用例可能出现的问题和可能的解决方案进行了分析和讨论。

2024-01-21 17:50:12 389 1

原创 《算法导论》部分习题和思考题解答: 10.4-5 非递归有限空间遍历二叉树

《算法导论》部分习题和思考题解答: 10.4-5 非递归有限空间遍历二叉树

2022-11-26 07:49:55 182 1

原创 《算法导论》部分习题和思考题解答 - 10.2-8 单域处理前向和后向双指针

《算法导论》部分习题和思考题解答 - 10.2-8 单域处理前向和后向双指针

2022-11-26 06:03:12 195

原创 《算法导论》部分习题和思考题解答: 2-4 逆序对

算法导论》部分习题和思考题解答: 2-4 逆序对

2022-09-26 08:24:38 261

原创 《算法导论》部分习题和思考题解答 - 2.3-7

算法导论习题和思考题解答

2022-09-26 07:39:18 206

原创 使用BIT(Binary Indexed Tree)求数组里的逆序对

使用BIT(Binary Indexed Tree)求数组里的逆序对

2022-01-27 07:53:58 187

原创 Eclipse安装GSON,使用GSON转换Java Object到JSON

标题在eclipse里安装GSON创建一个对象并转换成JSON在eclipse里安装GSON从这里选择合适的GSON版本,下载GSON的jar文件:https://repo1.maven.org/maven2/com/google/code/gson/gson/保存jar文件到本地目录选中project点击鼠标右键,选择"Build Path" -> “Configure Build Path”选择"Java Build Path", 打开"Libraries",把jar文

2020-12-25 03:29:10 1697

原创 学习python有关统计基础部分课程总结

花了整整两天的时间学习一门关于python用来做统计的基础课程。现在总结一下。基本的原则是列出一些代码的实例,表明学到的pythong包括numpy和pandas的基本功能。如果可以用一个函数表示的就用一个函数,不用多个函数,这样容易跟踪。不过刚刚学完,思想上很觉得疲劳。这个总结可能要慢慢做起来。做完了再分享出去。函数def add_numbers(x, y, z=None, flag=False): if flag: print('flag is true') i

2020-11-30 07:30:37 877 1

原创 怎样grep出匹配组的信息并得到唯一输出

需求类似于regex匹配时可以指定匹配里某局部匹配为一个组(group),并得到该匹配组的输出。举例,文件里存在如下行:for asnId: 14807053913 and asnUniqueContainerId: 53b659349265a4554246a6b94ad00752-1@2 but container not found我要以”but container not found“得到所有匹配行,并且得到这些匹配行中的”asnId: "后面的ID值,并且保证输出唯一。那么如果你的gr

2020-11-28 02:44:53 2458

原创 锤子,剪刀,布游戏的研究

题目来自于kaggle。用AI模拟锤子,剪刀,布的游戏。下面是我的一些解法和尝试。1. 随机数最直观的解法。用随机数产生。代码如下:import numpy as npdef random_agent (observation, configuration): return np.random.randint(1, 10000) % 3这个解法得到了742.2分。2. 基于对手会使用平均的策略这个想法基于对手会比较平均的出锤子,剪刀,布,那样我就永远猜测对手下一次会出

2020-11-23 07:46:57 399

原创 Python技巧1: 使用python分析wav文件

对于声音类的文件分析起来除了听最好是先可以把声音转换成图形,这样对于声音文件之间的不同有一个视觉上的认知,对于后续分析可以是一个很有用的补充。python可以利用SCIPY库装载wav文件,并使用matplotlib绘制图形。首先我从这个网站上下载了1M和2M的wav文件作为wav样例文件:https://file-examples.com/index.php/sample-audio-files/sample-wav-download/然后使用下面的代码装在并绘制wav文件的音调图形:fro

2020-09-07 07:57:44 1028

原创 一起背英语单词(一):新概念英语I - 长度1到3的英语单词

最近开始背诵英语单词。自己从新概念英语整理了一些英语单词,并做了排序处理。按照单词长度从短到长做了排序。这样的好处有两个,第一,短单词好记,第二,很多单词是由词根组成的,背了词根再看到由它衍生出来的单词就更容易记忆。很多短单词其实并不为我们所熟悉,比如pit,是洞的意思,但是很多人可能更熟悉burrow,知道pit是洞的意思,pitfall是陷阱就很容易理解。再比如ark,是方舟和避难所的意思。所以很多很简单的单词可以大大扩充我们的词汇量。新概念英语一种一共有4500个左右的单词,可以收集起来,反复背诵。背

2020-07-20 02:06:17 1025

原创 AWS入门指南之四:微服务以及Lambda

这篇文章我们聊一聊微服务的概念,和aws里与微服务关系比较紧密的两个计算服务:Lambda和ECS Fargate。什么是微服务(microservice)?按照维基百科的定义,微服务是面向服务架构(servcie-oriented-architecture - SOA)的变体。服务是许多松散耦合的服务集合。在微服务中,服务是细粒度的,协议是轻量级的。那么什么是面向服务架构呢?SOA是一种设计方式,它基于一种理念是系统中的每一个部件利用网络通信协议向其它系统部件提供远程服务。所有的部件功能应该是独立的。

2020-07-04 16:20:11 697

原创 AWS入门指南之三:一致性问题

最近比较忙,很少来更新博客。这一次我们简单聊一聊一致性的问题。对于一个分布式系统来讲,一致性问题是一个非常重要,非常基础的问题。对于分布式系统的框架设计者,可以说是一个需要考虑的基本问题。在分布式系统中一个基础理论是CAP,具体说就是一致性(Consistency),可用性(Availability),分区容错(Partition tolerance)。一个个具体解释一下:一致性:每一个读操作可以接收到最新的数据或者是错误可用性:每一个请求可以接收到一个没有错误的相应,但是不保证该相应包含最后写的数

2020-06-22 01:16:58 809

原创 AWS入门指南之二:泛谈AWS的分布式概念

今天从宽泛的角度谈谈AWS的分布式概念。首先,AWS是一个基于分布式架构构建的云服务,我想这一点是最清楚最明白,人人皆知不过的了。但是,当我们开始使用AWS以后就会发现分布式远不像我们想象中那么清晰,而是经常会忘记,并且需要时时提醒自己我正在使用的是一个分布式系统。当我们后面讨论一些AWS当中最流行的服务,比如DynamoDB,比如S3,我们会涉及到一个很有趣的概念,叫做consistency。我们会需要深入理解eventually consistency的概念,和使用这样的服务时需要克服的一些陷阱。而这些

2020-05-26 08:43:15 699

原创 AWS入门指南之一:怎样创建免费的AWS账号

从今天起,打算慢慢写一系列关于aws的文章。主要集中于AWS的一些基本知识和操作指南。这其中会穿插于介绍一些云和分布式系统的知识,但是以AWS的实现为主。可能会带有少量的代码,但是主体操作应该会使用AWS Console和AWS CLI来完成。面向的读者是对云和AWS感兴趣,但是还一无所知的人群。当然对于某些主题,对于某些有一定经验但是对于该主题不是很熟悉的读者也可以作为借鉴。另外,AWS带有非常...

2020-05-04 07:40:42 5652

原创 OO过时了吗?软件危机还有吗?

今天随便聊两句最近觉得有点迷惑的问题。年龄大一点的程序员应该都经历过大家都在谈OO的年代。那个时候我们最热衷的问题大概无外乎什么是对象,对象间的关系,UML,等等技术话题,以及对于非OO设计的深深鄙视了。但是三十年河东,三十年河西,不知何时OO已经不是计算机科学领域的热点话题了。取而代之的是云计算,函数式编程。但是OO是否真的过时了?我仔细地想了想这个问题,其实毫无疑问OO并没有过时。第一,绝...

2020-04-13 08:23:00 791

原创 读书笔记- the data engineer's guide to spark

// start spark sessionspark-shell// load dataval staticDataFrame = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("s3://houzhe/mydata/guide/*.csv")// pr

2018-06-25 07:16:19 155

原创 怎么学习外语(功夫英语-6个月掌握一门外语)

1. 要先学习和自己有关系最重要的词汇用法;2. 理解含义和上下文,然后词汇自然就会学到;3. 学习外语的发音和听力是生理训练过程(练好外语功夫)4. 轻松快乐+忍耐歧义5. 把外语当成工具每天说和用...

2018-06-11 14:02:49 935

原创 浮点数计算务必考虑浮点表示误差并使用epsilon

对于浮点数的计算非常容易产生懒惰的想法而试图忽视掉浮点表示的缺陷。最简单的例子是浮点表示某些数值会有误差,这个时候必须考虑使用epsilon。比如我要比较abs(a/b - c/d)的最小值,如果数值一样就取字典最小序。如下版本是有问题的:double ans = abs(elements[v[0]] * 1.0 / elements[v[1]] - elements[v[2]] * 1.0 / ...

2018-06-04 03:09:45 2028

原创 《Java8实践》读书笔记 - 第四章 - Streams

"Streams are an update to the Java API that lets you maintain collections of data in a declarative way"所以Stream有两个关键点,1. 维护collections用的,2. 使用的是描述性方式两段代码示例:import static java.util.Comparator.comparing...

2018-06-01 15:23:38 228

素数判定与大数分解

数学科普读物有助于增强数学思维能力,进一步可以提高算法和AI的思维能力。

2018-05-31

斐波那契数列

数学科普类丛书,有益于锻炼数学思维,增加数学知识。

2018-05-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除