博客园 - 学数学的程序猿
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=159553
2024-03-26T09:22:37Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
feed.cnblogs.com
https://www.cnblogs.com/dongkuo/p/18097146
使用 Kotlin DSL 编写网络爬虫 - 学数学的程序猿
本博文将会通过一个网络爬虫的例子,向你介绍 Kotlin 的基本用法和其简洁有力的 DSL。 关于DSL 按照维基百科的说法,DSL(domain-specific language) 是一种专注于某一特定应用领域的计算机语言。和我们常用的通用目的型语言(类如 C,Java,Python 等)相反,
2024-03-26T09:22:00Z
2024-03-26T09:22:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】本博文将会通过一个网络爬虫的例子,向你介绍 Kotlin 的基本用法和其简洁有力的 DSL。 关于DSL 按照维基百科的说法,DSL(domain-specific language) 是一种专注于某一特定应用领域的计算机语言。和我们常用的通用目的型语言(类如 C,Java,Python 等)相反, <a href="https://www.cnblogs.com/dongkuo/p/18097146" target="_blank">阅读全文</a>
https://www.cnblogs.com/dongkuo/p/14323042.html
Redis源码学习(1)──字符串 - 学数学的程序猿
redis 版本:5.0 本文代码在Redis源码中的位置:redis/src/sds.c、redis/src/sds.h 源码整体结构 src:核心实现代码,用 C 语言编写 tests:单元测试代码,用 Tcl 实现 deps:所有依赖库 字符串存储结构 Redis 将字符串的实现称为 sds(
2021-01-24T15:55:00Z
2021-01-24T15:55:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】redis 版本:5.0 本文代码在Redis源码中的位置:redis/src/sds.c、redis/src/sds.h 源码整体结构 src:核心实现代码,用 C 语言编写 tests:单元测试代码,用 Tcl 实现 deps:所有依赖库 字符串存储结构 Redis 将字符串的实现称为 sds( <a href="https://www.cnblogs.com/dongkuo/p/14323042.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dongkuo/p/11360419.html
自己动手实现MQTT协议 - 学数学的程序猿
写在前面 前段时间弄IoT相关的东西,系统学习了一下 MQTT 协议,在此分享出来。 本文先是对 MQTT 协议做了简单的介绍;接着是对 MQTT协议的内容做了较为全面的解读;最后使用 Python 语言去实现一个简单的 MQTT 客户端和服务器。 简介 MQTT 全称是 Message Queue
2019-08-15T12:39:00Z
2019-08-15T12:39:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】写在前面 前段时间弄IoT相关的东西,系统学习了一下 MQTT 协议,在此分享出来。 本文先是对 MQTT 协议做了简单的介绍;接着是对 MQTT协议的内容做了较为全面的解读;最后使用 Python 语言去实现一个简单的 MQTT 客户端和服务器。 简介 MQTT 全称是 Message Queue <a href="https://www.cnblogs.com/dongkuo/p/11360419.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dongkuo/p/10986440.html
GoodNotes 模板分享 - 学数学的程序猿
笔记本 横线笔记本模板,间距适中,背景色仿实体笔记本。点击下载 六线谱 在 GoodNotes原本的基础上,每行加入4条垂直4等分线。点击下载
2019-06-06T10:25:00Z
2019-06-06T10:25:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】笔记本 横线笔记本模板,间距适中,背景色仿实体笔记本。点击下载 六线谱 在 GoodNotes原本的基础上,每行加入4条垂直4等分线。点击下载 <a href="https://www.cnblogs.com/dongkuo/p/10986440.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dongkuo/p/9826410.html
自己动手写表达式解释器 - 学数学的程序猿
写在前面 最近需要实现自定义报表的功能,其中有一个需求是要计算用户输入的公式的值。比如用户输入公式:A1 + A2 * 2.4,其中的A1、A2是变量,2.4是常数,我们需要做的是将A1和A2对应的数值带入表达式,计算出最终结果。需要说明的是,公式是用户自己输入的,而不是我们预先设定好的;公式中还可
2018-10-21T11:40:00Z
2018-10-21T11:40:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】写在前面 最近需要实现自定义报表的功能,其中有一个需求是要计算用户输入的公式的值。比如用户输入公式:A1 + A2 * 2.4,其中的A1、A2是变量,2.4是常数,我们需要做的是将A1和A2对应的数值带入表达式,计算出最终结果。需要说明的是,公式是用户自己输入的,而不是我们预先设定好的;公式中还可 <a href="https://www.cnblogs.com/dongkuo/p/9826410.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dongkuo/p/8285162.html
100行代码实现“跳一跳”辅助程序 - 学数学的程序猿
写在前面 好久没写博客了,今天来一发吧。分享一下今天下午用python写的“跳一跳”小游戏的辅助程序。之前是准备用树莓派操控一个“机械手指”来代替人的触摸操作,但该方案还在酝酿中,实现了再分享。接下来要分享的是用“纯软件”的方法来玩“跳一跳”。 原理 原理其实很简单,按如下步骤操作即可: 每次跳跃之
2018-01-14T16:27:00Z
2018-01-14T16:27:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】写在前面 好久没写博客了,今天来一发吧。分享一下今天下午用python写的“跳一跳”小游戏的辅助程序。之前是准备用树莓派操控一个“机械手指”来代替人的触摸操作,但该方案还在酝酿中,实现了再分享。接下来要分享的是用“纯软件”的方法来玩“跳一跳”。 原理 原理其实很简单,按如下步骤操作即可: 每次跳跃之 <a href="https://www.cnblogs.com/dongkuo/p/8285162.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dongkuo/p/7623882.html
斐波那契堆——算法导论(26) - 学数学的程序猿
1. 写在前面 在很久之前学习过堆这种数据结构。这次再来学习一种比较特别的“堆”——斐波那契堆。下文首先会介绍斐波那契堆的结构,然后会介绍在其上的操作,最后再分析这些操作的效率,以及一些理论的证明。 2. 结构 斐波那契堆是一系列具有最小堆序的有根树的集合,即斐波那契堆中的每棵树均遵循最小堆性质。
2017-10-03T08:11:00Z
2017-10-03T08:11:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】1. 写在前面 在很久之前学习过堆这种数据结构。这次再来学习一种比较特别的“堆”——斐波那契堆。下文首先会介绍斐波那契堆的结构,然后会介绍在其上的操作,最后再分析这些操作的效率,以及一些理论的证明。 2. 结构 斐波那契堆是一系列具有最小堆序的有根树的集合,即斐波那契堆中的每棵树均遵循最小堆性质。 <a href="https://www.cnblogs.com/dongkuo/p/7623882.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dongkuo/p/6714071.html
自己动手实现DNS协议 - 学数学的程序猿
1. 主要内容 本文的主要内容: 介绍DNS是干什么的; 介绍DNS是如何工作的; 介绍DNS请求与响应的消息格式; 编程实现一个简单的DNS服务器; 2. DNS是啥 关于DNS是啥,想必学过计算机网络的应该都知道,它是Domain Name System的简写,中文翻译过来就是域名系统,是用来将
2017-04-15T05:38:00Z
2017-04-15T05:38:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】1. 主要内容 本文的主要内容: 介绍DNS是干什么的; 介绍DNS是如何工作的; 介绍DNS请求与响应的消息格式; 编程实现一个简单的DNS服务器; 2. DNS是啥 关于DNS是啥,想必学过计算机网络的应该都知道,它是Domain Name System的简写,中文翻译过来就是域名系统,是用来将 <a href="https://www.cnblogs.com/dongkuo/p/6714071.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dongkuo/p/6582953.html
用Angular2+Express快速搭建博客 - 学数学的程序猿
1. 写在前面 昨天花了1天的时间把自己的博客从以前的Express换成了Angular2+Express,遂记录于此。博客Demo在这里,你也可以点击这里查看完整代码。 第一次使用Angular2,还是遇到了不少问题,比如 ng-cli(1.0.0-rc.1)自动生成的项目直接跑起来报错; 采用前
2017-03-19T15:12:00Z
2017-03-19T15:12:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】1. 写在前面 昨天花了1天的时间把自己的博客从以前的Express换成了Angular2+Express,遂记录于此。博客Demo在这里,你也可以点击这里查看完整代码。 第一次使用Angular2,还是遇到了不少问题,比如 ng-cli(1.0.0-rc.1)自动生成的项目直接跑起来报错; 采用前 <a href="https://www.cnblogs.com/dongkuo/p/6582953.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dongkuo/p/6491816.html
为你的博文构建目录 - 学数学的程序猿
1. 写在前面 这要从前几天看Hibernate的用户手册说起。 这份手册确实挺长,而且还是全英文,对于刚过四级的我来说,看着确实有些“吃力”。这种“吃力”表现在,我经常看着看着就忘了自己看到哪了,对于前面看过的内容的印象特别模糊,于是我就在思考为什么会这样。 是有许多不认识的单词或不懂的语法吗?应
2017-03-02T09:51:00Z
2017-03-02T09:51:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】1. 写在前面 这要从前几天看Hibernate的用户手册说起。 这份手册确实挺长,而且还是全英文,对于刚过四级的我来说,看着确实有些“吃力”。这种“吃力”表现在,我经常看着看着就忘了自己看到哪了,对于前面看过的内容的印象特别模糊,于是我就在思考为什么会这样。 是有许多不认识的单词或不懂的语法吗?应 <a href="https://www.cnblogs.com/dongkuo/p/6491816.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dongkuo/p/6352197.html
机器学习实战笔记(1)——k-近邻算法 - 学数学的程序猿
1. 写在前面 近来感觉机器学习,深度学习神马的是越来越火了,从AlphaGo到Master,所谓的人工智能越来越NB,而我又是一个热爱新潮事物的人,于是也来凑个热闹学习学习。最近在看《Machine Learning IN ACTION》(作者:Peter Harrington)这本书,感觉非常不
2017-01-26T14:58:00Z
2017-01-26T14:58:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】1. 写在前面 近来感觉机器学习,深度学习神马的是越来越火了,从AlphaGo到Master,所谓的人工智能越来越NB,而我又是一个热爱新潮事物的人,于是也来凑个热闹学习学习。最近在看《Machine Learning IN ACTION》(作者:Peter Harrington)这本书,感觉非常不 <a href="https://www.cnblogs.com/dongkuo/p/6352197.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dongkuo/p/6266733.html
Angular学习笔记(2)——TODO小应用 - 学数学的程序猿
1. 写在前面 之前我们跑了Angular的Hello World,你是不是对它有点感觉了呢?这一篇将结合一个TODO程序来继续学习Angular的用法。 梳理一下之前的Hello World程序。我们写了一个main.ts来引导模块AppModule,而该模块又包含组件AppComponent,这
2017-01-09T14:07:00Z
2017-01-09T14:07:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】1. 写在前面 之前我们跑了Angular的Hello World,你是不是对它有点感觉了呢?这一篇将结合一个TODO程序来继续学习Angular的用法。 梳理一下之前的Hello World程序。我们写了一个main.ts来引导模块AppModule,而该模块又包含组件AppComponent,这 <a href="https://www.cnblogs.com/dongkuo/p/6266733.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dongkuo/p/6259637.html
Angular2学习笔记(1)——Hello World - 学数学的程序猿
1. 写在前面 之前基于Electron写过一个Markdown编辑器。就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成;但就代码而言,之前主要使用的是jQuery,由于本人非专业前段,代码写的自己都感觉是“一塌糊涂”,十分混乱。现在看到Angular2十分火爆,跑了跑
2017-01-07T08:10:00Z
2017-01-07T08:10:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】1. 写在前面 之前基于Electron写过一个Markdown编辑器。就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成;但就代码而言,之前主要使用的是jQuery,由于本人非专业前段,代码写的自己都感觉是“一塌糊涂”,十分混乱。现在看到Angular2十分火爆,跑了跑 <a href="https://www.cnblogs.com/dongkuo/p/6259637.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dongkuo/p/6001791.html
消息队列——RabbitMQ学习笔记 - 学数学的程序猿
1. 写在前面 昨天简单学习了一个消息队列项目——RabbitMQ,今天趁热打铁,将学到的东西记录下来。 学习的资料主要是官网给出的6个基本的消息发送/接收模型,或者称为6种不同的使用场景,本文便是对这6种模型加以叙述。 2. Tutorials 在学习6种模型之前,我们首先需要安装RabbitMQ
2016-10-26T12:27:00Z
2016-10-26T12:27:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】1. 写在前面 昨天简单学习了一个消息队列项目——RabbitMQ,今天趁热打铁,将学到的东西记录下来。 学习的资料主要是官网给出的6个基本的消息发送/接收模型,或者称为6种不同的使用场景,本文便是对这6种模型加以叙述。 2. Tutorials 在学习6种模型之前,我们首先需要安装RabbitMQ <a href="https://www.cnblogs.com/dongkuo/p/6001791.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dongkuo/p/5934613.html
B树——算法导论(25) - 学数学的程序猿
1. 简介 在之前我们学习了红黑树,今天再学习一种树——B树。它与红黑树有许多类似的地方,比如都是平衡搜索树, 但它们在功能和结构上却有较大的差别。 从功能上看,B树是为磁盘或其他存储设备设计的,能够有效的降低磁盘的I/O操作数,因此我们经常看到有许多数据库系统使用B树或B树的变种作为储存的数据结构
2016-10-06T11:38:00Z
2016-10-06T11:38:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】1. 简介 在之前我们学习了红黑树,今天再学习一种树——B树。它与红黑树有许多类似的地方,比如都是平衡搜索树, 但它们在功能和结构上却有较大的差别。 从功能上看,B树是为磁盘或其他存储设备设计的,能够有效的降低磁盘的I/O操作数,因此我们经常看到有许多数据库系统使用B树或B树的变种作为储存的数据结构 <a href="https://www.cnblogs.com/dongkuo/p/5934613.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dongkuo/p/5860476.html
NiceMark——我的Markdown编辑器 - 学数学的程序猿
闲来无事,写了一个Markdown编辑器。基于 electron ,完全采用Web前段技术(Html,css,JavaScript)实现。代码已托管在 "Github" 上,欢迎下载使用。 下面上几张截图:
2016-09-10T14:21:00Z
2016-09-10T14:21:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】闲来无事,写了一个Markdown编辑器。基于 electron ,完全采用Web前段技术(Html,css,JavaScript)实现。代码已托管在 "Github" 上,欢迎下载使用。 下面上几张截图: <a href="https://www.cnblogs.com/dongkuo/p/5860476.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dongkuo/p/5826852.html
摊还分析(2)——算法导论(24) - 学数学的程序猿
1. 动态表 先来介绍动态表的概念。 我们在使用数组时,通常都是先创建一个大小固定的数组,然后再将数据填充进去。这时难免会遇到创建的数组过小或过大的情况。过小则满足不了存储需求;过大则浪费存储空间。于是我们对普通数组进行包装,创造出一种叫做 动态表 的数据结构。 所谓动态,就是它能够自动地进行表的
2016-08-31T09:25:00Z
2016-08-31T09:25:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】1. 动态表 先来介绍动态表的概念。 我们在使用数组时,通常都是先创建一个大小固定的数组,然后再将数据填充进去。这时难免会遇到创建的数组过小或过大的情况。过小则满足不了存储需求;过大则浪费存储空间。于是我们对普通数组进行包装,创造出一种叫做 动态表 的数据结构。 所谓动态,就是它能够自动地进行表的 <a href="https://www.cnblogs.com/dongkuo/p/5826852.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dongkuo/p/5824007.html
摊还分析(1)——算法导论(23) - 学数学的程序猿
摊还分析(amortized analysis) 是一种分析一个操作序列中所执行的所有操作的平均时间分析方法。与一般的平均分析方法不同的是,它不涉及概率的分析,可以保证最坏情况下每个操作的平均性能。 下面介绍瘫痪分析中的最常用的三种技术。 1. 聚合分析 1.1 栈操作 先来看对栈进行操作的例子。
2016-08-30T15:01:00Z
2016-08-30T15:01:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】摊还分析(amortized analysis) 是一种分析一个操作序列中所执行的所有操作的平均时间分析方法。与一般的平均分析方法不同的是,它不涉及概率的分析,可以保证最坏情况下每个操作的平均性能。 下面介绍瘫痪分析中的最常用的三种技术。 1. 聚合分析 1.1 栈操作 先来看对栈进行操作的例子。 <a href="https://www.cnblogs.com/dongkuo/p/5824007.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dongkuo/p/5596398.html
贪心算法(2)——算法导论(22) - 学数学的程序猿
1. 写在前面 在 "上一篇博客" 中,我们通过 选择问题 了解了 贪心算法 。这一篇博客将继续介绍贪心算法,主要谈谈 贪心算法的原理 ,并简单分析一下 背包问题 。 2. 贪心算法原理 通过上一篇博客中的 选择问题 ,我们看到, 贪心算法 可以由如下几个步骤来实现: 1. 确定问题的最优子结构;
2016-06-18T08:30:00Z
2016-06-18T08:30:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】1. 写在前面 在 "上一篇博客" 中,我们通过 选择问题 了解了 贪心算法 。这一篇博客将继续介绍贪心算法,主要谈谈 贪心算法的原理 ,并简单分析一下 背包问题 。 2. 贪心算法原理 通过上一篇博客中的 选择问题 ,我们看到, 贪心算法 可以由如下几个步骤来实现: 1. 确定问题的最优子结构; <a href="https://www.cnblogs.com/dongkuo/p/5596398.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/dongkuo/p/5584610.html
贪心算法(1)——算法导论(21) - 学数学的程序猿
1. 写在前面 在之前的5篇博客中,我们学习了 动态规划 算法。我们可以看到,在求解最优化问题的算法中,通常需要经过一系列的步骤,在每个步骤中都面临多种选择。对于许多最优化问题,使用动态规划算法来求解最优解有些杀鸡用牛了,可以使用更加简单的算法。 贪心算法(greedy algorithm) 就是其
2016-06-14T08:49:00Z
2016-06-14T08:49:00Z
学数学的程序猿
https://www.cnblogs.com/dongkuo/
【摘要】1. 写在前面 在之前的5篇博客中,我们学习了 动态规划 算法。我们可以看到,在求解最优化问题的算法中,通常需要经过一系列的步骤,在每个步骤中都面临多种选择。对于许多最优化问题,使用动态规划算法来求解最优解有些杀鸡用牛了,可以使用更加简单的算法。 贪心算法(greedy algorithm) 就是其 <a href="https://www.cnblogs.com/dongkuo/p/5584610.html" target="_blank">阅读全文</a>