自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一蓑烟雨任平生

个人技术学习笔记仓库

  • 博客(37)
  • 资源 (7)
  • 收藏
  • 关注

转载 说过的话就一定要办到——redo日志(上)

标签: MySQL是怎样运行的事先说明本文以及接下来的几篇文章将会频繁的使用到我们前边唠叨的InnoDB记录行格式、页面格式、索引原理、表空间的组成等各种基础知识,如果大家对这些东西理解的不透彻,那么阅读下边的文字可能会有些吃力,为保证您的阅读体验,请确保自己已经掌握了我前边唠叨的这些知识。redo日志是个啥我们知道InnoDB存储引擎是以页为单位来管理存储空间的,我们进行的增删改查操作其实本质上都是在访问页面(包括读页面、写页面、创建新页面等操作)。我们前边唠叨Buffer Pool的时候

2021-11-30 16:25:10 267

转载 07哪些代码设计看似是面向对象,实际是面向过程的?

在实际的开发工作中,很多同学对面向对象编程都有误解,总以为把所有代码都塞到类里,自然就是在进行面向对象编程了。实际上,这样的认识是不正确的。有时候,从表面上看似是面向对象编程风格的代码,从本质上看却是面向过程编程风格的。希望你通过对这三个典型例子的学习,能够做到举一反三,在平时的开发中,多留心一下自己编写的代码是否满足面向对象风格。1. 滥用 get、set方法在之前参与的项目开发中,我经常看到,有同事定义完类的属性之后,就顺手把这些属性的 getter、setter 方法都定义上。有些同.

2021-11-29 20:43:59 157

原创 C++编程规范

资源清理程序出错时需要对已分配的一些资源做清理,在传统的玩法下,每一步的错误都要去清理前面已分配好的资源。于是就出现了goto fail这样的错误处理模式。如下所示:#define FREE(p) if(p) { \ free(p); \ p = NULL; \ }main(){ char *fname=NULL, *lname=NULL, *mname=NULL; f...

2021-11-28 20:55:09 457

原创 Window下VScode 配置Go,helloword

1.下载Go官网:https://go.dev/下载后按照步骤傻瓜式操作2.配置VScode安装GO插件3.配置系统环境设置GO环境变量在Go安装文件夹下新建gopath文件夹,点击“环境变量”按钮,弹出变量设置窗口,新建以下四个变量,然后重启电脑。GOPATH和GOROOT都是你的安装路径4.Hello,World随便一个位置新建项目文件夹,我取名为go-DEMO 在cmd打开,运行 go mod init example...

2021-11-28 11:27:24 282

原创 计算机书籍资料推荐

《代码大全》虽然这本书有点过时了,而且厚到可以垫显示器,但是这绝对是一本经典的书。 《程序员修练之道》这本书也是相当经典,我觉得就是你的指路明灯。 《计算机的构造和解释》经典中的经典,必读。 《算法导论》美国的本科生教材,这本书应该也是中国计算机学生的教材。 《设计模式》这本书是面向对象设计的经典书籍。 《重构》代码坏味道和相应代码的最佳实践。 《人月神话》这本书可能也有点过时了。但还是经典书。 《代码整洁之...

2021-11-28 10:53:13 614

转载 技术领导力

如何拥有技术领导力?前面这些说的比较宏大,并不是所有的人都可以发明或创造这样的核心技术,但这不妨碍我们拥有技术领导力。因为,我认为,这世界的技术有两种,一种是像从马车时代到汽车时代这样的技术,也就是汽车的关键技术——引擎,另一种则是工程方面的技术,而工程技术是如何让汽车更安全更有效率地行驶。对于后者来说,我觉得所有的工程师都有机会。那么作为一个软件工程师怎样才算是拥有“技术领导力”呢?我个人认为,是有下面的这些特质。 能够发现问题。能够发现现有方案的问题。 能够提供解决问题的思路和方

2021-11-28 09:16:54 1402

原创 HKM中科米点 六通道 数据采集器 多维力传感器读取程序

程序下载链接:六维传感器v1.0.zip-DNS文档类资源-CSDN下载介绍本程序基于UDP开发,基于的硬件是下面两个图。我已经用C++实现了并验证了,保证代码可用:HKM中科米点 六通道 数据采集器 多维力传感器 EtherNet CAT USB CAN RS485/232HKM中科米点 六维力传感器 机械手臂末端软件架构安装教程直接下载。使用VS2017开发使用说明采集的数据保存在: 六维传感器v1.0\数据采集"当前时间".csv参考资...

2021-11-27 21:59:52 645

原创 如何用技术变现

在工作当中,对于那些没什么技术含量的工作,我基本上就像是在学生时代那样交作业就好了。我想尽一切方法提高交作业的效率,比如,提高代码的重用度,能自动化的就自动化,和需求人员谈需求,简化掉需求,这样我就可以少干一些活了……这样一来,我就可以有更多的时间,去研究公司里外那些更为核心更有技术含量的技术了。在工作中,我总是能被别人和领导注意到,总是有比别人更多的时间去读书,去玩一些高技术含量的技术。当然,这种被“注意”,也不全然是一种好事。2002 年,我被外包到银行里做业务开发时,因为我完成项目的速度太

2021-11-25 22:14:54 1779 1

原创 Vim 基本概念和基础命令:应对简单的编辑任务

好,现在请查看下面的键盘图。简单说明一下,这张图上展示了一个键盘。图中的“•”表示,单个字母不是完整的命令,必须再有进一步的输入。比如,单个“g”没有意义,而“gg”表示跳转到文件开头。(对于命令后面明确跟一个动作的,如“c”,我们不使用“•”。)一个键最多有三排内容:最底下是直接按键的结果,中间是按下 Shift 的结果(变大写),上面偏右的小字是按下 Ctrl 的结果。我们还用了一些特殊符号来表示操作的位置,如果你已经了解了这些命令的功能,你也自然就明白它们的意义了。Vim 命令速查(教...

2021-11-23 22:33:45 603

原创 vim 教程 vimtutor 1.7 zh_CN.UTF-8

LANG=zh_CN.UTF-8 vimtutor==================================================================== 欢 迎 阅 读 《 V I M 教 程 》 —— 版本 1.7 ==================================================================== Vim 是一个具有很多命令的功...

2021-11-23 11:03:39 460

原创 vim入门

想用好 Vim,先要理解 Vim 的模式转换。Vim 常用的模式有四种:普通模式:Vim 启动后的默认模式,用来移动光标、删除文本、覆盖输入文本、恢复操作、粘贴文本等等。 插入模式:输入 i 或 a 进入插入模式,在这个模式下敲击键盘会往文字缓冲区增加文字,相当于普通编辑器的编辑模式。 可视模式:选择文本,可以行选、块选和依次选择,选择后可以进行复制、删除、排序等操作。 命令模式:执行内部和外部命令,通过“:”“/”“?”“:!”可以进入命令模式,分别对应的是:执行内部命令、向上或向下搜索、执行外

2021-11-23 10:55:56 445

转载 封装、抽象、继承、多态

什么是 UML?我们是否需要 UML?讲到面向对象分析、设计、编程,我们就不得不提到另外一个概念,那就是 UML(Unified Model Language),统一建模语言。很多讲解面向对象或设计模式的书籍,常用它来画图表达面向对象或设计模式的设计思路。实际上,UML 是一种非常复杂的东西。它不仅仅包含我们常提到类图,还有用例图、顺序图、活动图、状态图、组件图等。在我看来,即便仅仅使用类图,学习成本也是很高的。就单说类之间的关系,UML 就定义了很多种,比如泛化、实现、关联、聚合、组合、依赖等..

2021-11-23 10:05:02 616

原创 设计模式入门

提高复杂代码的设计和开发能力大部分工程师比较熟悉的都是编程语言、工具、框架这些东西,因为每天的工作就是在框架里根据业务需求,填充代码。实际上,我刚工作的时候,也是做这类事情。相对来说,这样的工作并不需要你具备很强的代码设计能力,只要单纯地能理解业务,翻译成代码就可以了。但是,有一天,我的 leader 让我开发一个跟业务无关的比较通用的功能模块,面对这样稍微复杂的代码设计和开发,我就发现我有点力不从心,不知从何下手了。因为我知道只是完成功能、代码能用,可能并不复杂,但是要想写出易扩展、易用、易维护的

2021-11-22 22:38:52 310

转载 学习基础技术:你对“基础”的理解准确吗?

如果说 IT 技术领域有哪个说法最深入人心,那一定是“基础很重要”;而如果说有哪个说法让很多人花费了大量时间去学习,却没什么效果的话,那么多半也是这句话。我相信你曾经被人谆谆教诲过:做技术,基础很重要,一定要打好基础,比如说数据结构和算法、操作系统、编译原理等等;而且很多公司面试的时候,也采用了“面试造航母,工作拧螺丝”的方式,对基础能力的考察远远超过实际工作需要。结果,很多人费了很大的力气来提升所谓的“基础能力”,但是却发现根本看不到提升效果,工作中也用不上,白白浪费时间和精力。难道说“基础很

2021-11-19 22:26:52 857

原创 摄影理论:光与影的设计

测光:什么才是正确曝光?看你需要的“正确曝光”是什么,这也就引出了我们即将要说的另一个知识点:测光。我们在手机上都有过类似的体验,找个典型的例子,比如拍夜景,拍灯火阑珊的街头,我们点一下屏幕,这时候相机不光是对焦,还会测光。如果你点到一盏路灯,那么所有灯光都会暗下来,灯光的光线会变得非常柔和,但问题是灯光后面的建筑都会变得乌漆嘛黑,没有细节。如果你避开灯光,点一下旁边的建筑,那么所有建筑都清晰可见,但问题是灯光就过曝了,白花花的一片,非常扎眼,显得非常劣质。光圈、快门、ISO,他们仨虽然自己都.

2021-11-19 11:42:15 787

原创 优质摄影作品

2021-11-19 11:09:11 121

原创 vector、string用法、数组____

s.erase(pos,1);从第pos个位置删除1个字符 s.insert(pos,"%20");

2021-11-18 21:11:53 159

原创 位运算__

位运算基础&按位与如果两个相应的二进制位都为1,则该位的结果值为1,否则为0|按位或两个相应的二进制位中只要有一个为1,该位的结果值为1^按位异或若参加运算的两个二进制位值相同则为0,否则为1~取反~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1<<左移用来将一个数的各二进制位全部左移N位,右补0>>右移将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数, 高位补0技巧1.消去最后一个 1.

2021-11-17 19:24:00 323

原创 二分查找_★★★

二分查找到底有能运用在哪里?最常见的就是教科书上的例子,在有序数组中搜索给定的某个目标值的索引。再推广一点,如果目标值存在重复,修改版的二分查找可以返回目标值的左侧边界索引或者右侧边界索引。PS:以上提到的三种二分查找算法形式在前文「二分查找详解」有代码详解,如果没看过强烈建议看看。抛开有序数组这个枯燥的数据结构,二分查找如何运用到实际的算法问题中呢?当搜索空间有序的时候,就可以通过二分搜索「剪枝」,大幅提升效率。说起来玄乎得很,本文先用一个具体的「Koko 吃香蕉」的问题来举个例子。..

2021-11-17 19:08:28 556

原创 《认知天性:让学习轻而易举的心理学规律》

我从不相信自己有什么天赋,因为学习真的不容易。但我特别爱考试,没有测验的时候,我就和同学互相出题考着玩。每次大考之前,我不会一遍一遍地看书、看笔记,而是拿出一张大纸,靠自己的回忆把这学期学习的公式、重点、单词、生字、诗词都默写一遍。每门课用一张纸。遇到想不起来的,就使劲想一会儿。最后才查书,补充完善这学期的知识图谱。这样一来,上考场的时候就不会遇到特别意外的题目了。我忘记了这个方法是我自己发明的,还是我爸爸教给我的,总之有效。直到今天,我讲每一本书也只是看一遍,半个月后要准备讲的时候再拿出一张白纸……然

2021-11-16 22:31:10 2704

转载 MySQL优质参考资料、

文档1.MySQL官方文档:https://dev.mysql.com/doc/refman/5.7/en/ MySQL官方文档是写作本书时参考最多的一个资料。说实话,文档写的非常通俗易懂,唯一的缺点就是太长了,导致大家看的时候无从下手。2.MySQL Internals Manual:https://dev.mysql.com/doc/internals/en/ 介绍MySQL如何实现各种功能的文档,写的比较好,但是太少了,有很多章节直接跳过了。 何登成的github:http

2021-11-15 20:46:40 352

原创 双指针 & 滑动窗口

快慢指针解决主要解决链表中的问题,比如典型的判定链表中是否包含环快慢指针一般都初始化指向链表的头结点head,前进时快指针fast在前,慢指针slow在后,巧妙解决一些链表中的问题。1、判定链表中是否含有环用两个指针,一个跑得快,一个跑得慢。如果不含有环,跑得快的那个指针最终会遇到null,说明链表不含环;如果含有环,快指针最终会超慢指针一圈,和慢指针相遇,说明链表含有环。2、已知链表中含有环,返回这个环的起始位置当快慢指针相遇时,让其中任一个指针指向头节点,然后让它俩以相同速度前进

2021-11-14 20:41:49 2602 1

原创 动态规划入门

C++ 之父 Bjarne Stroustrup 先生回答过一个问题:“如今新生代技术人员倾向于学习 Java、Go 或 Python 这些更容易上手的编程语言,您是如何看待这个现象的?” Stroustrup 先生的回答大概是这样的:“如果一个人只了解一种编程语言,那么他不能称自己是专业人士,而从我的角度上看,将 C++ 作为基础,能让你深入洞察各种各样编程语言背后的思想和设计思路。”建立扎实的基础知识体系先掌握基础数据结构和算法,再来谈动态规划。锻炼算法编码能力,重视实践...

2021-11-14 17:26:04 1028

转载 Play & Teach:摆脱“从入门到忘记”的学习困境?

Play 学习法从科学学习的角度来看,学以致用的效果是最好的,光学不练学得不深,时间一长可能就忘记了。但我们在实践中会遇到一个常见的困难,那就是团队当前的工作任务当中并没有相关的实践机会。这种情况下,你学习某个技术就会陷入两难的困境:如果学的话,得不到实践,学得不深;如果不学的话,真的要用的时候又来不及了。这时候怎么办呢?完全放弃肯定是不可取的,因为机会都是留给有准备的人,如果来了一个新的任务正好要用到某个技术,到时候肯定是团队内谁有准备就安排谁,不会等到某个人学习完了再安排任务给他。所以,

2021-11-10 20:58:51 307

转载 链式 & 比较 & 环式学习法:怎么多维度提升技术深度?

上一讲我介绍了三段分解法,教你把“10 年成为大牛”这个宏大的目标,分解成 1~2 个月的可落地计划,然后再按周来执行实际的行动。但是,不同级别的核心要求是不一样的,晋升时评委的考察重点也不一样,所以在成长过程中,我们主要提升的技术维度也在发生变化。一般来说,P5/P6/P7 主要提升技术深度,P7/P8 主要提升技术宽度,P8/P9 主要提升技术广度。(我在第 11 讲和第 16 讲分别以前端和 Java 后端为例,解释了这三个维度的区别。)这三个不同的技术维度,分别适合用不同的方法来提升,这

2021-11-10 20:53:18 942

转载 三段分解法:怎么利用10000小时?

我们的大脑在进化的过程中,已经形成了需要不断的正反馈才能保持兴奋的机制,也就是说,与其在第 10 年给一个大奖励,还不如每个月都给一个小奖励。介绍一个三段分解法,带你把“10 年成为大牛”这个大目标,分解成一个个可以在短期内达成的小目标。第一段:分解“等级”第一段分解,是在当前状态和最终的目标状态之间,分解出中间的等级。10 年成为大牛这个目标虽然比较长远比较宏大,但并不意味着在成为大牛之前,我们一直停留在菜鸟阶段原地踏步。在菜鸟和大牛之间,其实有几个关键的里程碑,这些里程碑就是中间的.

2021-11-10 20:15:56 206

转载 海绵学习法:怎么找到你的10000小时?

10000 小时定律的走红,跟畅销书作家马尔科姆·格拉德威尔(Malcolm Gladwell)有很大的关系。2008 年他在《异类》这本书里介绍了安德斯·艾利克森(Anders Ericsson)教授的研究成果,并提炼出了这个定律,要想成功就必须要有 10000 小时的投入。10000 小时定律意味着什么?1. 成为专家需要 10 年单纯说 10000 小时,我们可能没有一个直观的概念。其实艾利克森在“The Role of Deliberate Practice in the Acquisi

2021-11-09 21:11:55 556

转载 学习方法论

写在前头学习不是简单地投入时间和精力就可以达到效果,我们需要有一些技巧和方法,去提高我们学习过程中的效率,最终达到自己学习后想要的效果。特别是在我参加工作之后,之前在华为,现在在蚂蚁,都是加班比较多的公司,能学习的时间很少,所以更需要我们用一些方法论,高效地掌握一块知识。学习路径这里我把学习分为三个大路径(步骤):学习之前 -> 学习之时 -> 学习之后。学习之前(先回答几个问题)WHY 自己为什么要学这个知识?问这个问题其实是想让你认清自己,避免学到一半之后突...

2021-11-09 21:04:30 528

原创 导学:你应该掌握哪些学习方法?

我相信绝大部分人都是愿意通过学习来提升自己的,但是在你学习的过程中,肯定会遇到很多困难。比如在之前的课程中,就有同学提出了非常典型的问题:不知道你是不是也有这样的感受:光是上班累得要死,还要陪对象吃饭逛街看电影,或者送孩子去上培训班,根本就没什么时间学习;等到哪天好不容易有点空余时间,又因为没有计划,只能随便找本书或者上网水水论坛看看;就算知道要针对某个技能专门提升一下,也不知道怎么学才能达到精通水平;过段时间回头一看,前几周学的东西又忘得差不多了;跟别人交流一下子就暴露了水平……其实你遇到的这

2021-11-09 20:56:30 201

转载 P6提升:怎么成为独立自主的“项目能手”?

上一讲我们学到了,P5 的核心能力要求是在别人的指导下完成任务。如果能够从 P5 晋升到 P6,就说明你已经完成了从学生到打工人的角色转变,成长为一名合格的员工了。这一讲我们就来了解一下 P6 的能力要求和提升建议。P6 对应的工作年限是 2~5 年,核心能力要求可以用一句话来概括,独立负责端到端的任务。这句话有两个关键词:独立:P6 做的事情跟 P5 差不多,但已经不需要别人带着做了。P5 和 P6 的开发人员都会参加需求评审,只不过 P5 参加的时候只是在听,而 P6 可能就会针对需求直接提出意

2021-11-09 20:37:51 762 1

原创 摄影入门-

Magnum Photos | Iconic images, authentic visual storytelling

2021-11-08 21:49:49 140

原创 Process finished with exit code -1073741819 (0xC0000005)解决思路——bug排坑

背景:下述代码运行时报错if __name__ == '__main__': model1 = ExchangeBasic.read_step(".\model\model2.stp") model2 = ExchangeBasic.read_step(".\model\model3.stp") v = BasicViewer() v2 = BasicViewer() v.add(model1) v.add(model2) v.s...

2021-11-08 11:34:13 40390 1

转载 P5提升:快速从学生转变为职场人

P5:从学生到“打工人”我们先来看看 P5 级别。P5 对应的工作年限大概是 0~3 年,本科毕业生的定级一般就是 P5,优秀的毕业生会定到 P5+,目前进 BAT 的应届生绝大部分都是 P5+。大部分 P5 工作 2 年以后可以晋升 P6(无论是内部晋升还是跳槽定级)。如果你工作 3 年了还没法晋升 P6,可能需要考虑一下是否适合当前岗位了,或者反思一下自己有哪些地方做得不好。P5 的核心能力是在别人的指导下完成任务,这句话有两个重点:在别人的指导下:通常是 P6 或者 P7 来带 P5。

2021-11-07 21:24:04 1568

转载 Socket内核数据结构

上一节我们讲了 Socket 在 TCP 和 UDP 场景下的调用流程。这一节,我们就沿着这个流程到内核里面一探究竟,看看在内核里面,都创建了哪些数据结构,做了哪些事情。解析 socket 函数我们从 Socket 系统调用开始。SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol){ int retval; struct socket *sock; int flags;...... if (SOCK_NONBL

2021-11-03 21:30:56 694

转载 进程间通信——管道

匿名管道我们先来看,我们常用的匿名管道(Anonymous Pipes),也即将多个命令串起来的竖线,背后的原理到底是什么。上次我们说,它是基于管道的,那管道如何创建呢?管道的创建,需要通过下面这个系统调用。int pipe(int fd[2])在这里,我们创建了一个管道 pipe,返回了两个文件描述符,这表示管道的两端,一个是管道的读取端描述符 fd[0],另一个是管道的写入端描述符 fd[1]。我们来看在内核里面是如何实现的。SYSCALL_DEFINE1(pip.

2021-11-03 19:48:53 722 1

转载 进程通信——信号

在 Linux 操作系统中,为了响应各种各样的事件,也是定义了非常多的信号。我们可以通过 kill -l 命令,查看所有的信号。# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2

2021-11-02 20:20:24 860 1

转载 职级档次:你现在应该具备的核心能力是什么?

上一讲我介绍了 COMD 能力模型,让你能够具体拆解一个级别的能力要求,不再纠结于抽象的描述。但你可能还是不清楚每个级别到底要求什么。这些具体要求,我会在课程第二部分,也就是职级详解部分一一介绍。不过在这之前,我想先通过三个类比带你纵向透视职级档次,对不同档次的核心能力建立一个形象的认知。P5/P6:专业工匠P5/P6 这一档相当于“专业工匠”,就像木匠、铁匠、粉刷匠一样,核心能力是完成任务。这里的任务是指每个岗位需要完成的事情,比如开发岗位需要完成代码编写,测试岗位需要完成测试用例执行

2021-11-01 11:21:07 1012

六维传感器UDP通信、六维传感器UDP通信

六维传感器UDP通信、六维传感器UDP通信、

2022-03-02

pdf转换器,免费 pdf转换器,免费 pdf转换器,免费

pdf转换器,免费 pdf转换器,免费 pdf转换器,免费

2022-02-24

六维力传感器的工业机器人末端重力补偿算法

六维力传感器的工业机器人末端重力补偿算法

2021-12-06

SOEM-EtherCAT-cia402-motorControl.zip

基于SOEM-EtherCAT-cia402-motorControl的电机控制代码

2021-01-12

typed_ast-1.4.0-cp36-cp36m-win_amd64.whl

Twisted-typed_ast-1.4.0-cp36-cp36m-win_amd64 Twisted-typed_ast-1.4.0-cp36-cp36m-win_amd64

2019-07-05

typed_ast-1.4.0-cp36-cp36m-win32.whl

Twisted-typed_ast-1.4.0-cp36-cp36m-win32.whl Twisted-typed_ast-1.4.0-cp36-cp36m-win32.whl

2019-07-05

typed_ast-1.4.0-cp37-cp37m-win32.whl

typed_ast-1.4.0-cp37-cp37m-win32.whl typed_ast-1.4.0-cp37-cp37m-win32.whl

2019-07-05

空空如也

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

TA关注的人

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