![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习
文章平均质量分 71
龙赤子
15年开发猿,linuxer,分享经验,获得快乐. LCCZ_QRS
展开
-
系统层面知识连接收藏
收藏网络上的文章链接,供查询用。原创 2022-07-14 10:00:04 · 202 阅读 · 2 评论 -
关于二阶低通滤波的C代码及入门测试
低通滤波器在许多领域都有广泛的应用。博主也因为需要,最近看了看这方面的资料。因为一方面主要需求是二级低通滤波的实现,另一方面该需求只是功能中引入的一个小点,不是做这方面研究用,所以在资料的挑选上就比较苛刻,那些讲一大堆原理公式的就不太适合,有点头重脚轻。反而那些直达目标,讲如何代码实现的,是博主比较关注的。也正因为如此,感觉网上资料比较少。而且好多资料虽然有代码,但也穿插了比较多的理论和概念,有的还需要二次转换,这种资料,很多时候就放弃了。原创 2023-09-24 17:24:03 · 3235 阅读 · 0 评论 -
关于EJB,这两文把热闹和门道都说清楚了
关于技术的很多概念,如果你是小白,不建议看官网。原因就在于官网描述太抽象,就像八股文,看完感觉好像说了很多,但回过头又感觉似乎啥都没说。其实这些官网的打太极式的表述,在你对这个东西有个直观感受的前停下,还想提升自己的理解面,这时候再来看就比较合适。最近深入SOA架构时,遇到了EJB这个JAVA领域早年的流行词,且总在各个地方蹦出来,影响理解新的东西,索性就停下来,专门研究了一下。结果,还真找到了好资料,一看就清楚了。神神秘秘的东西,扒开看,其实都没啥稀奇的,只是被包装的玄玄乎乎。原创 2023-07-30 19:39:45 · 162 阅读 · 0 评论 -
当你怀疑电脑的时候,就是该换个方法的时候了
做软件开发的朋友们,干的时间长了,相信都会有过类似的体验:一个问题查了很久很久,代码检查了很多遍很多遍,到最后都要怀疑电脑了,突然发现是一个特别隐蔽的错误导致的,而这种错误通常不涉及逻辑流程,却特别容易瞒天过海。比如可能是掺杂了一个中文字符,可能是少写了一个分号,可能是变量重名了,可能是类型强转了,可能是变量未初始化,可能是指针指错了等等等等。其实这个问题的原因很简单,我们在编写代码过程中,出现了拼写错误,丢失了函数的括弧,编译器将函数名当做函数指针,用一个指针值参与运算了。可以看到,符合我们的预期。原创 2023-06-03 11:42:53 · 210 阅读 · 0 评论 -
Google I/O 2023 新的变化,今年流行AI
随着 AI 不断的快速升级,我们专注于为用户带来更有用的功能。从今天开始,我们为用户提供了一种新的方式,来预览 Workspace 和其他产品中的部分体验。这就是 Labs。虽然我说这是一种新方式,但是 Google 使用 Labs 作为一种早期访问和获得反馈的方式已经有很长的历史了,用户可以在今天晚些时候开始注册。除了你们刚才看到的 Workspace 功能外,能够在 Labs 测试的首批体验之一是我们的创始产品——Google Search。转载 2023-05-21 11:05:16 · 344 阅读 · 0 评论 -
冥冥中有天意?从FPGA出发再回到FPGA
再回FPGA,无问东西。原创 2023-04-05 21:14:18 · 78 阅读 · 0 评论 -
如何让虚拟机里的Ubuntu通过连接手机USB数据线上网
介绍如何通过使用手机USB数据线实现Windows和虚拟机里的Ubuntu联网原创 2023-03-25 22:37:24 · 6005 阅读 · 0 评论 -
HTTPS为什么就安全了?我们做了什么?
换个角度来看HTTPS是如何保证通信安全的。原创 2023-02-12 10:48:18 · 447 阅读 · 0 评论 -
Google I/O 2022 新鲜出炉,打开你技术的想象空间
Google I/O 2022: 促进知识和计算机技术发展2022年5月12日大约在 24 年前,Google 由两名研究生创立,当时 Google 拥有一个产品,以及一个远大的使命:整合全球信息,供大众使用,使人人受益。在那之后的几十年里,我们一直在推进我们的技术来实现这一使命。我们所取得的进步源于我们多年来对先进技术的投入,从人工智能到为这一切提供动力的技术基础设施。每年一次,在我一年中最喜欢的一天:) 我们在 Google I/O 与大家分享最新进展。今天,我谈到了我们如何转载 2022-05-12 09:53:54 · 673 阅读 · 0 评论 -
年末再看指针。看来搞C/C++,如影随形的指针就得门清~~~
整理指针的概念和相关用法原创 2022-12-31 18:50:15 · 474 阅读 · 4 评论 -
QT布局之QGridLayout嵌套QHBoxLayout
QT中实现QGridLayout布局嵌套QHBoxLayout布局原创 2022-11-20 12:48:52 · 2372 阅读 · 0 评论 -
关于CPU选择的三要素:性能、价格、功耗
对CPU的功耗、性能、面积的关系进行了深入浅出的介绍。转载 2022-10-18 20:05:54 · 2517 阅读 · 0 评论 -
刨根问底:为什么玩游戏会让手机变得更热?
深入思考CPU发热的原因是什么原创 2022-09-18 23:09:53 · 1009 阅读 · 0 评论 -
要一统江湖?Google发布Flutter2
2021年 3月伊始,Google发布了跨操作系统的开源应用UI框架Flutter2。官方第一时间也在Bilibili和腾讯发布了相关主题演讲的中文字幕完整视频。看看官方第一句介绍: 开发者为任何平台创建美观、快速且可移植应用的能力得以更上一层楼。通过 Flutter 2,您可以使用相同的代码库为五种操作系统构建原生应用: iOS、Android、Windows、macOS 和 Linux;以及为 Chrome、Firefox、Safari 和 Edge 等浏览器打造 web 体验。大...转载 2021-03-05 10:57:07 · 2978 阅读 · 4 评论 -
为ARM平台交叉编译蓝牙工具
为ARM平台交叉编译蓝牙工具 原文连接https://wiki.beyondlogic.org/index.php?title=Cross_Compiling_BlueZ_Bluetooth_tools_for_ARM1Prerequisites 1.1GLib 1.1.1zlib 1.1.2libffi 1.1.3GLib 1.2D-Bus 1.2.1The Expat XML Parser 1.2.2D-Bus 1....转载 2021-01-28 14:54:53 · 558 阅读 · 0 评论 -
gdate error: format not a string literal -Werror=format-nonliteral 错误详解
项目中用到了glib,在对其交叉编译时,没想到出现了如下错误: gdate.c: In function 'g_date_strftime': gdate.c:2497:7: error: format not a string literal, format string not checked [-Werror=format-nonliteral] tmplen = strftime (tmpbuf, tmpbufsize, locale_format, &tm)...原创 2021-01-28 22:14:04 · 4685 阅读 · 3 评论 -
QT屏幕界面整体旋转效果图
QT可以通过Transformed方式整体旋转屏幕显示画面,比如通过环境变量方式如下配置:export QWS_DISPLAY="Transformed:Rot90..."其中90表示90度旋转。通过dump底层framebuffer中数据并编码为图片,可以直观看到QT整体旋转的效果。注意,该效果与实际屏幕最终显示可能不一致,比如横屏竖屏的差异。正常渲染到framebuffer中效果:90度旋转后效果图:180度旋转后效果图:270度旋转后效果图:可以看到,取的是原创 2021-01-26 19:59:14 · 1715 阅读 · 0 评论 -
竟是CPU BUG?--记ARM指令SWP导致的QT卡住问题
竟是CPU BUG?--记ARM指令SWP导致的QT卡住问题现象:QT运行一段时间后会卡住环境:QT版本为4.4 CPU为三星EXYNOS 4412,Cortex A9 4核心,1.5G 过程及原因分析: 既然程序会卡住,一定是什么地方出了问题,这个时候,最直接高效的方式是使用GDB查看进程的堆栈。 但是,如果进程编译时没有使用-g选项,也就是编译的release版本,或者连接的库有release版本,则堆栈有可能出现符合无法解析的问题。 这个时候,可...原创 2021-01-29 22:39:18 · 919 阅读 · 0 评论 -
哈希摘要、证书、对称密钥、公私密钥应用场景梳理
甲方发送信息给乙方甲方用哈希算法对明文进行计算,得到信息摘要甲方用自己的私钥对信息摘要进行加密,得到数字签名,并将数字签名放到明文后边甲方随机产生一个对称密钥甲方用对称密钥对明文和数字签名进行加密,得到密文甲方查看乙方的证书,得到乙方的公钥甲方用乙方的公钥对 对称密钥 进行加密甲方将密文和加密的对称密钥发送给乙方乙方从甲方接收到信息乙方查看甲方的证书,得到甲方的公钥乙方私钥对 对称密钥 进行解密,得到对称密钥乙方用对称密钥对密文进行解密,得到明文和数字签名乙方用原创 2021-02-17 22:38:14 · 1019 阅读 · 0 评论 -
压箱底干货分享--知识无价,看看二十年前老外怎么教CPU设计
俗话说,没有教不好的学生,只有不会教的老师。每每看到这个文档,我都会想起成长路上遇到的老师们。有的兢兢业业,认真负责,努力讲清楚每一个疑问;有的对认真完成实验的不吝惜给100分;有的争分夺秒,为占用下课时间影响大家饭点占座而道歉;当然,也有的会在课堂上讲出“找我报驾校,会有优惠”,下课则一句自己看书了事......其实,无论怎么做,怎么说,有意还是无意,这每一点每一滴都会印在学生的心上,影响着他们。好了,进入正题,来一起欣赏这份设计CPU的教学文档吧。...原创 2021-02-17 17:35:41 · 142 阅读 · 3 评论 -
static变量看着有点晕,gdb汇编清醒清醒
运行时,因为局部静态变量只初始化一次,这样,当我们调用该接口时,如果指针未初始化,则其将被初始化为new的对象,之后,每次再调用该接口时,指针初始化部分将不被执行,因此达到了类只实例化一次的目的。最终发现,静态变量只是让编译器在全局地址空间给其预留一份,定义时候,上述指针所在内存是被初始化为0的,也就是指针本身是NULL的。只有运行时,才会调用new,动态的分配对象内存,并将其地址给静态变量。关于这些变量的区分,不再展开,需要了解的读者,可以网络搜索或者随便翻翻C/C++方面的书籍,都有介绍的。...原创 2022-07-14 20:53:04 · 385 阅读 · 0 评论 -
实践出真知--你的字节对齐和堆栈认知可能是错误的
最近在查一个问题时,需要查看程序的堆栈。但在分析堆栈时,出现了一些意料之外的情况。这打破了我对字节对齐和堆栈的固有认知。就如标题所指示,实践出真知,有时候我们的固有印象可能是错误的,并可能因此为问题的解决带来额外的不必要麻烦。具体是什么情况呢,听龙赤子给您慢慢道来。对于有开发经验的C/C++码农来讲,字节对齐和堆栈相关的知识是入门必备技能。面试中,这类问题也是高频出现。可见它们是非常基础,非常重要的知识。同样,对于有开发经验的码农来讲,很大可能会觉得字节对齐和堆栈问题是小case,自己早已深入理解,掌握透彻原创 2022-06-12 17:14:50 · 464 阅读 · 0 评论 -
分清概念十分重要系列之--关于GPS,你需要了解这些
1 先说说启动模式GPS模组的启动大部分都分为三种:冷启动,温启动和热启动。英文一般对应cold、warm、hot这三种启动方式有什么区别呢?其实,它们都是服务启动速度的。我们来看看它们的区别:冷启动:GPS 芯片中没有任何信息(星历、历书、位置信息、时间信息)为冷启动。温启动:GPS 芯片中有历书、位置信息、时间信息,没有星历,为温启动。热启动:GPS 芯片中有历书、星历(两小时内的信息)、位置信息、时间信息从上面描述可以很容易区分冷启动和另外两种的差异。对于温启动和热启动,我原创 2022-04-26 19:05:25 · 1512 阅读 · 2 评论 -
几道DP算法题的思考分析
回想当年,选择计算机专业,主要还是这个行业当时比较新,比较火。自身由于生活条件限制,对计算机并没有很深入的认识,算不上有多了解,更多的是好奇心理,觉得懂计算机很酷。这就是最初的种子。不得不说,就个人而言,高中时候还是比较喜欢物理的。大一在学校门口书店看到有卖大学物理的,还买了一套,回来自己琢磨。但是,既然选择了这个专业,还有一些好奇,那就按部就班来吧。当程序上机课上,自己编写的程序成功运行后,心底的那颗种子发芽了。一个人的兴趣其实并不是一成不变的,我觉得有两个因素可能会影响到这一点。第一个因素是对兴原创 2021-12-26 11:40:09 · 273 阅读 · 0 评论 -
关于C++多态特性
1 静态联编:函数重载。不允许仅返回值不同。2 动态联编:虚函数。3 基类的指针可以指向派生类,但不能传递,指向派生的派生。4 对于成员函数的调用:对象实例变量,调用对象自身的版本。对象指针变量,区分是基类指针还是当前派生类指针,以及是否为虚函数。如果是基类指针,非虚函数,调用指针对象所属的版本;如果是虚函数,调用实际指向的对象所属的版本(因为虚函数是通过虚表实现的,虚表的内容是会被覆盖的)。派生类指针则调用派生类版本。5 多继承时,走各自的路径。6 构造中虚函数依赖编译器判断当前类型,原创 2021-09-20 21:12:56 · 88 阅读 · 0 评论 -
关于const的犄角旮旯
关于const的犄角旮旯const关键字为程序的健壮性和编译优化提供辅助参考信息。const主要由编译器来解读使用,是一个静态的概念。也就是,当我们对一个变量通过const说明为常量时,后续对该变量的修改,会被编译器检查出来,然后报错。但是,一旦检查通过了,在实际运行时,跟普通变量并没有差别。比如,如果我们通过别的手段获取了常量的地址,还是可以在运行时改变它的值。内存中,它还是表现为一个普通的数据变量。const的含义网上有很多说明文章。权威的解释,个人觉得应该是标准说明。编译器要根据标准要求原创 2021-09-11 22:35:17 · 94 阅读 · 0 评论 -
从编译器的角度理解代码中的各种古怪写法
在编写代码时,总会遇到一些“奇怪”的要求或者约束,仔细想想跟正常逻辑似乎不太对应,这时候就需要换个角度来理解了。比如,按照声明顺序初始化,对象初始化包括两步操作,先初始化后计算赋值。再比如,代码中的一些稀奇古怪的写法,列表方式,,,,Java的main在class中(虽然这是为了贯彻Java的彻底面向对象要求,但是个人觉得main单独提出来,按照其本意独立使用,似乎更好理解)。其实,这些都转换成容易理解的方式即可,不必去深究,否则就是钻牛角尖了。因为他们都只是语义的表达,严格来讲,并非完全、严密的原创 2021-08-08 11:01:08 · 134 阅读 · 0 评论 -
Java平台体系的自我整理
一 语言基础1 基础Java语言。面向对象的语言,有常见语言的共同特征,包括基本的语法要求,有变量,语句,数组,数据结构(容器,哈希等等)等语言惯用的关键字、内置类型等。此外,Java也进一步封装了IO流,网络流等。2 Java是面向对象的语言,支持面向对象的一般特性,包括封装、继承、多态等,有类和对象的概念,所有的变量也属于类类型,是纯粹的面向对象语言。3 Java语言的高级特性:反射,序列化,本地接口JNI,垃圾回收等。发展过程中也在不断借鉴吸收各种语言的好特性,比如lamda表达式等。原创 2021-03-15 19:29:54 · 94 阅读 · 2 评论 -
设计模式学习
简单工厂模式将具有相同特征的产品类的创建交给专门的工厂,由工厂负责提供产品的new过程。外部通过抽象的产品引用来使用具体的产品类。Operation工厂方法模式进一步提炼抽象工厂类。抽象工厂类生产抽象产品,具体工厂类生产具体产品。抽象工厂模式具体工厂生产不止一种产品。抽象工厂更加抽象,可以生产任何及多种抽象产品。建造者模式创建的对象有共同的特征或者是组成部分,但是具体的阶段或者构成部分又有特殊,可通过该模式将建造过程和具体建造组件分离开来。BuildPart比如Android中的对话框原创 2021-03-05 20:33:59 · 88 阅读 · 0 评论