- 博客(257)
- 资源 (5)
- 问答 (2)
- 收藏
- 关注
原创 开源玩具总动员-本博客的知识关系图
作为一个非全职编程爱好者,基本是把计算机周边当做高档大玩具来玩的,顺便带着有兴趣的学生搞一搞学习。这篇文章作为全站的一个导航篇,把本博客的主干要点汇聚一下。
2024-03-06 20:56:19 866
原创 自然语言模型的哲学小谈
近期,以chatGPT为代表的大语言模型表现非常惊艳。,以及推理能力,很难不让我们期待未来人工智能的发展,同时冷静思考一下为什么自然语言模型能够取得巨大进步。本文从科普的角度,探讨思维的形成,以及思维与自然语言之间的关系。
2023-04-22 20:26:18 1387 1
原创 从《三体》科技爆炸看50年来计算机的应用发展
作为一个老程序猿,没有完整看过《三体》原著一直以来是我的遗憾。最近刚因为《流浪地球》的原因,趁热打铁拜读了刘慈欣的原著,真的太震撼了。站在老程序猿的角度,这部鸿篇巨制真的大饱口福,回味无穷。老丁比刘慈欣先生小十几岁,是标准的75后,也是从78-80这段时间有了最初的记忆。对近50年来生活的变化,用作品里“科技爆炸”这个词形容再合适不过,能够亲自见证以计算机技术为代表的科技发展,是属于老程序猿的幸福。
2023-03-13 22:47:37 346
原创 小学阶段计算机编程启蒙闲谈
最近闲来和一位退休的小学老师聊天。他教数学,兼任信息学老师,便聊到小学阶段的计算机编程启蒙。聊的很有兴趣,也感慨科技的发展。1 第一代儿童编程启蒙改革开放之后,邓爷爷提出,计算机要从娃娃抓起。小学最早一批计算机教学,使用的是中华学习机,主要教学内容是计算机操作、打字以及简单的编程(LOGO、BASIC)。在教学实践中,由于缺少图形化的编程教学工具,教育工作者考虑到学生语文、数学,尤其是英语(笔.........
2020-01-30 21:52:58 3944 1
原创 基础软件国产化闲谈
现代软件是高度国际化的,在互联网上,传播、发布易如反掌。我们普通人更不会不去关心这些东东都是哪个国家的。事实上,很多时候真的说不清楚,开源项目有各个国家的团队参与,那么,为什么还要再扯国产化这个蛋疼的话题呢?笔者认为,软件国产化讲的是“基础软件国产化”,基础软件是孕育大师的舞台,基础软件和开源社区紧密绑定,基础软件改善行业环境。...
2016-08-29 20:55:00 8603 3
原创 穿越时空的纪念册
整理屋子,故纸堆中翻出了93年的电脑报合订本,偶有兴趣的翻看了一下,一不小心就荒废了一下午。跟随着编辑的脚步,脑海中记忆的门缓缓的开启了。 还记得SPDOS+WPS吗?我是93年在中学机房接触SPDOS 1.0 + WPS的,坐在长城单色显示器边,战战兢兢地输入“SPDOS”,"B:","WPS",“西山DOS”系统便启动了。当时特别喜欢GW-Basic, QB...
2012-07-04 00:10:10 5325 20
原创 世界的本质是旋转(8) 开发信道仿真器,脱离USRP实现钟差频差相差和噪声模拟
在文章陆续发表后,有网友说自己没有USRP 平台,如何跑例子?我想了一下,由于USRP的收发是整个事件流的驱动,向前输出水位触发生产,向后输出IQ数据触发接收,还真的需要一个取代USRP的模拟器来进行模拟。本文介绍了简易模拟器的实现。有了这个模拟器,即可脱离USRP板卡来跑部分的模块。
2024-03-18 08:30:00 750
原创 世界的本质是旋转(7) PSK 接收机上层同步技巧以及8PSK解调的额外处理
上一篇以BPSK为例子,介绍了nPSK(n=2,4,8)波形的接收、解调中的同步技术。前文阐述的同步技术所工作的对象是复平面的坐标,X轴是实部、Y轴是虚部。当完成时钟、频率同步后,就获得了一串整数,也就是解调的结果了。但还有很多其他的工作有待完成。调制与解调只是协议栈最底层的部分。本节,会继续介绍码流层面的同步技术。同时,在文章的最后,会给出这种野路子协议栈的缺陷,以及学习通信原理时需要具备的认知:书本的流程和现实实验之间存在大量的技巧知识空隙,需要仔细琢磨和学习思考。
2024-03-12 12:55:09 858 2
原创 世界的本质是旋转(6)-在复平面上借助软件无线电SDR解调BPSK波形
上文完成了BPSK波形的发射。相对于BPSK波形的生成总共就4行代码,接收要略微复杂一些,算上各种同步、锁相环,约80行。本文详细介绍了C语言实现BPSK锁相解调与课本电路结构之间的区别。使用会计算atan和带有大缓存的计算机,要比模拟器件解调的传统方法简单的多。直接从复平面和角度上理解设计算法,比按照课本的模拟电路结构图复刻算法更为直接。
2024-03-05 08:56:51 890 2
原创 世界的本质是旋转(5)-在复平面上驱动软件无线电SDR发射BPSK波形
在上几期,我们介绍了复平面、拍照采样的一些思维实验。从本期开始,进入了实际工程应用。我们结合从底层自研的C语言SDR实验平台实操,以朴素而直接的思路起步,以图、代码为主,并没有严谨专业的理论推导。最终实现一个全双工的SDR BPSK 通道。
2024-03-04 19:00:49 954
转载 【转载翻译C++之父文章】在纷繁多变的世界里茁壮成长:C++ 2006–2020
这是 C++ 之父 Bjarne Stroustrup 的 HOPL4 论文的中文版。HOPL 是 History of Programming Languages(编程语言历史)的缩写,是 ACM(Association of Computing Machines,国际计算机协会)旗下的一个会议,约每十五年举办一次。Bjarne 的这篇论文是他为 2021 年 HOPL IV 会议准备的论文,也是他的第三篇 HOPL 论文。
2024-02-26 17:19:56 91 1
原创 使用 C++23 协程实现第一个 co_yield 同步风格调用接口--Qt计算排列组合
在C++23的协程特性里, co_yield 用于从协程执行过程中返回值。这个功能乍一听起来很奇怪,网上的例子大多是用一个计数器来演示多次中断协程函数,返回顺序的计数值。这看起来毫无意义。其实这个功能主要想演示的就是协程 co_yield 具备打断一个函数的执行,并多次返回值的能力。这种能力允许实现一种隐式状态机,每次使用时,返回下一个状态。这对于极为复杂的状态计算来说,是很有用的。它(协程)避免了显式的设置状态记忆句柄,大大简化了实现难度。
2024-02-26 06:50:25 533
原创 使用 C++23 协程实现第一个 co_await 同步风格调用接口--Qt计算文件哈希值
C++加入了协程 coroutine的特性,一直没有动手实现过。看了网上很多文章,已经了解了协程作为“可被中断和恢复的函数”的一系列特点。在学习过程中,我发现大多数网上的例子,要不就是在main()函数的控制台程序里演示yeild,await, resume的特性,要不就是讲述很多概念,很少有演示协程究竟如何把异步变成同步调用的。本次,我们就通过一个简单的计算文件哈希值的例子,来演示如何进行协程操作。
2024-02-22 13:15:02 1080
原创 现场工程师实录-又是机械盘阵高并发!解决FTP大延迟断网问题
从2023年九月开始,朋友公司一直存在FTP断网问题。陆续查找各种原因,却一直没有解决。昨天见到他,才知道直到2024年初,经过多次折腾,更换交换机1台,服务器1台,客户端计算机N台,总算定位到故障源头,发现了由盘阵高并发导致的网络TCP排队高延迟问题。
2024-02-07 20:41:41 896
原创 QCoro: Qt C++ 20 协程库介绍
C++20 推出了协程的实现(协程是一种线程内的快速执行序切换功能,比回调函数调用起来要简单。是 Qt 的一个协程库,利用C++20的特性,可以显著简化以前用信号-槽回调才能完成的操作。代码可从下载。
2024-02-03 19:24:46 1872 2
原创 用git bash调用md5sum进行批量MD5计算
对于非常大的文件或者很重要的文件,在不稳定的网络环境下,可能文件的某些字节会损坏。此时,对文件计算MD5即可以校验其完整性。最简便的方法是使用git自带的md5sum进行计算,借助find批量匹配执行,用diff查看差异。
2024-01-19 13:12:31 746
原创 你好2024,OpenStreetMap 20 周岁
2004年,OpenStreetMap在英国诞生。2024年,OpenStreetMap 满 20 周岁,其愿景是创建一个免费的、可编辑的世界地图。当时,地图数据的获取往往受到限制或价格昂贵。经过20年的发展,该数据集合成为了最为全面的街道级别开源数据。本文介绍导入2014年1月数据的情况。
2024-01-15 07:02:50 1029
原创 使用软件解决T490笔记本57摄氏度温度墙的问题
客户使用LenovoT490跑GQRX SDR,接入SDR在5MHz采样率下,机器卡顿。这对于10代i7CPU显然是不正常的。后续发现上网页也卡,卸载杀毒、重装系统、BIOS电源设置、系统最大性能、主动散热全部设置后,故障依旧。最终按照网上教程,通过安装软件解决了问题。
2023-12-31 10:09:59 561
原创 热烈庆祝长三角师范院校智慧教学大赛圆满结束
第五届长三角师范院校教师智慧教学大赛于2023年12月19日顺利结束。安徽师范大学、淮北师范大学均获得一等奖。感谢所有参赛学校老师们的努力!我的母校从安徽师范大学淮北分校、淮北煤炭师范学院一路走来,朝气蓬勃,踏实耕耘,沉稳坚韧,祝愿学校越办越好。
2023-12-23 13:13:09 46
原创 Qt Desktop Widgets 控件绘图原理逐步分析拆解
Qt的一个风格按钮的点线面是如何绘制到屏幕上的呢?我们通过详细阅读Qt6.6源码,感受一下Qt从0开始做轮子的绘图过程。这种实现完全可以作为操作系统的GUI部分而存在,正如Qt本就是KDE桌面的基础工具链。
2023-12-10 20:52:57 335
原创 进亦忧,退亦忧,Github Copilot 集成进入 Visual Studio 带来的思考
未来30年的开发变革,与过去30年相比,是指数函数才能勉强描述的趋势。AI的发展已经到了一个拐点,无论是个人还是公司,如果不去主动拥抱新的变化,必然会被时代淘汰。煮出“AI大餐”的米,是基础学科软件API、开源仓库。缺少这些米,要煮出好饭就是巧妇难为无米之炊。国内企业在去全球化趋势下想要赶超,可能必须跳出追随思维,搞出自主学习和增殖的硅基生命才有希望。
2023-11-12 14:16:52 1983 2
原创 使用MSYS2的静态Qt版本进行Widgets项目编译时需要注意的问题
需要编译一个静态版本的应用程序,并用upx进行压缩,以便减少携带的动态链接库,生成每个文件不超过10MB的轻量级绿色发布包。使用动态库不利于发布。准备发布的环境,是学校的教学中心的学生计算机。学生计算机的每一台机器都可能安装有不同版本的Qt,且时常污染环境变量(PATH),导致链接了其他版本Qt的程序启动时遇到问题。不能为每一种Qt发布包编译一个发行版。本文介绍使用msys2编译静态Qt6程序的注意事项。
2023-10-29 14:39:36 361
原创 Qt Signals & Slots VS QEvents - Qt跨线程异步操作性能测试与选取建议
Qt跨线程异步消息用信号-槽还是Event?他们与直接函数调用的性能比较如何?我们通过对taskBus实时性改造中遇到的测试进行讲解,对比信号-槽与事件机制在多线程POSTMsg上的性能差异。尤其是范例代码对1-多、多-1的信号-槽连接分别进行测试。测试发现,事件调用的开销与单线程直接调用几乎一样。单点信号-槽调用性能是直接调用的50~80%左右,若槽很多,则性能直线下降。
2023-10-23 21:54:25 294
原创 地理测绘基础知识(6) 照射距离/俯仰等值线计算
上一篇文章中,我们采用HPR坐标系里的向量旋转,在地表绘制了这样的螺旋线:在复杂多样的现实应用需求中,还有一种更为普遍的计算需求,就是求取地表到全向光源的距离为D的所有点的集合(用多边形组成的近似椭圆区域)。本文在椭球模型下,讨论并实现了一类等值线计算算法。根据给定的投影朝向,获得朝向上的等值线的经纬度坐标。
2023-09-10 10:26:36 195
原创 本是同根生-双数据库集群keepalived virtual_route_id冲突导致连接故障
一企业近期陆续开始升级办公与大数据系统,新的承包商。原有的数据库是某国内大品牌A,现在新的功能准备陆续迁移到大品牌B上。A,B数据库都源自postgresql,且采用同样的 keepalived配置,导致子网内的 虚拟路由ID冲突。
2023-09-06 19:04:55 374 1
原创 地理测绘基础知识(5) 由光源矢量发起的照射计算
我们解决了照射计算的基本模型关系,并能够根据手电的位置指向,在地表求取光斑。但是,前文使用的是设置探针求取场强的点求取,对于绘制地表的等值线包络图、求取地表包线的具体解析情况,就不够用了。使用单点的方法计算量大,且步长不容易控制。本文给出基于向量旋转与交汇的计算算法。
2023-09-05 10:30:00 119
原创 地理测绘基础知识(4) 由地表探针发起的照射计算
照射计算,是一种常用的三维几何计算。已知一个光源的光强图,计算光源投射到地表各处的功率密度。这种计算需求可以直观的理解为计算已知位置、指向、聚光特性的手电筒,计算地表某地点强度。本文的推导涉及很多旋转,很容易出错和糊涂。当时刚刚毕业时,通宵推导、用Turbo C花了很大力气实现,结果笔记、程序都找不到了。现在已经白发丛生,从头重温一遍,也很是有趣。本推导可能存在符号反转等错误,等笔者后续做更有意思的场景时,不断验证才能更正。大家千万不要把这个代码真拿去仿真去了,十有八九会踩坑(-!
2023-09-02 13:57:09 159
原创 地理测绘基础知识(3)-观测与遮挡
在上一篇文章中,我们介绍了椭球模型下的一系列基础的坐标操作。本节,介绍观测与遮挡问题。观测主要用于从观察点A观测大地标准点B,用来解决观测的仰角、方位角与大地坐标系之间的关系。在没有GPS卫星的时代,为了测量一个位置的坐标,往往会设置多个采样点,不断测角、测距、测气压,“跑断腿”。在现代,这种基于方位俯仰的测量技术已经用的不多了,但方位俯仰的计算还是很有用的。遮挡问题和观测是同一个问题,解决的是从A点能不能看到B的问题。有时候计算A,B的共视问题时用的很多,尤其是其中一方为高山或者飞机时。
2023-08-18 11:24:02 293
原创 地理测绘基础知识(2)-椭球最短距离计算
本篇,主要介绍已知A\B两个点的经纬度,如何求取椭球上的最短距离、路径。要讨论方向,会引出两个概念。第一个是切平面坐标系,这是讨论"方向"的基础。第二个是运动,即考虑不同时刻、不同位置之间的关系与变化规律。
2023-08-13 21:06:08 533
原创 地理测绘基础知识(1) 坐标系经纬度与ECEF直角坐标的基本换算
我们目前最常用的全球坐标系是WGS-84坐标系,各种手机、地图基本用经纬度来标记位置。然而,经纬度对于空间的计算是很复杂的,需要很多三角函数操作。平面直角坐标系利用向量的运算,可以非常方便的计算角度、距离等参数,在实际应用中往往作为中间计算的工具。目前用到的很多GIS、遥感与测绘工具里都有这种功能,比如利用 libproj、RTK等工具,直接进行转换。为了教学方便,我们还是从头开始,实现这这种坐标的转换。
2023-08-11 21:00:34 1414
原创 现场工程师宝典-流式处理的异常现象以及提高吞吐能力的常见优化策略
流式处理区别于按包处理,指的是对处理者而言,面对的是逻辑上无头无尾的数据流。因此,在提取数据流中的包时,就需要遵循其内在的格式,进行头部捕获、提取、校验。然而,如果不考虑TCP等流式数据的异常情况,而简单的编程,会在性能、稳定性上踩坑。本人作为资深现场工程师,协助开发团队处理过各种千奇百怪的流式处理问题,本文把其中较为常见的一并总结一下,希望对避坑有所帮助。
2023-07-07 20:08:48 327
原创 避免滥用Qt信号与槽——改进taskBus 平台以吞吐20M IQ采样带宽
软件无线电平台是一款依靠 stdin-stdout进行数据吞吐的教学平台。在平台创建之初,主要使用 RTL-SDR进行简单的窄带接收应用,并没有考虑采样率超过1.8M的情况。引入 USRP B210/B205mini后,采样率瞬间提高到2M以上,此时,使用信号与槽进行吞吐时,性能问题就暴露无遗了。本文详细介绍如何该平台的实现问题,以及补救策略。补救后,双路可直接吞吐20MHz采样率的16bit IQ信号。
2023-06-24 20:33:52 1261
原创 基于机器学习的内容推荐算法及其心理学、社会学影响闲谈
基于机器学习的内容推荐算法目前在各类内容类APP中使用的非常普遍。在购物、时尚、新闻咨询、学习等领域,根据用户的喜好,进行较为精准的用户画像与内容推荐。此类算法不但可以较为准确的分析用户的特征,如年龄、性别等,还能通过长期的跟踪维护,大致确定用户的偏好。但过于精确的推荐,对用户的潜在心理学影响越来越受到科学界的重视。本文首先介绍推荐算法的基本原理,再介绍其对用户的心理学、社会学影响。
2023-06-03 21:27:45 1166 2
翻译 PC博物馆(14) 1977 Apple II 经典的经典
原文链接:http://oldcomputers.net/翻译:20230511原网站有大量技术背景材料的原文链接,有兴趣可前去查看。本期终于轮到介绍 appleII,以及它的国产机型 CEC系列“中华学习机”。关注中华学习机的文章,不再转载了,以免产生著作权问题。我们还是专门翻译国外的文章。
2023-05-11 17:26:19 544 1
翻译 PC博物馆(13) 1977 的三款计算机(Wameco QM-1A, Vector Graphic Vector 1,RCA COSMAC VIP)
原文链接:http://oldcomputers.net/翻译:20230511原网站有大量技术背景材料的原文链接,有兴趣可前去查看。本文介绍了1977年的三款计算机。
2023-05-11 17:10:33 135
原创 现场工程师出马:VMware+LVM卷快速在windows Server上部署Kafka集群
最近遇到的疑难现场问题层出不穷,本次遭遇的挑战是在4台windows Server 服务器上部署Kafka集群。这是一种比较少见的操作,原因是有些依赖的驱动对虚拟化支持不好,只能运行在实体win机上。原有的上层业务是由B团队开发+运维,现在B团队自己独立出去单干,需要把B团队的业务流转移到这4台windows 服务器上。因为老丁同学介绍,我现场指导了这次迁移,并不顺利,特此记录。主要解决了基于VMWare虚拟机的Linux Kafka节点在windows 服务器的部署。
2023-05-10 20:46:19 639
原创 现场工程师救火-UEFI(BIOS)节能设置导致金牌服务器只跑出龟速
近期协助出现场,解决了一个非常典型的UEFI 启动参数配置不当导致的服务器降效案例。错误的节能参数配置,导致价值几十万的服务器变成龟速服务器,并造成严重的生产事故。
2023-04-25 19:52:10 943 1
原创 用于小规模低成本场景的kafka + eCAL架构设计
Kafka作为存储、性能兼备的消息队列,适用场景很多,伸缩性也很强。如何调节kafka的配置参数,以及设计专题、分区的数量、物理位置,很大程度上影响到整个架构的成败。很多文章是站在数据中心的角度来谈kafka的配置,而对于小团队,往往只希望把Kafka作为一个跨进程、可追溯的隔离器来使用,取代繁琐的文件或者自定义TCP/UDP接口。此时,单独讨论这种场景就显得有必要了。本文介绍了在磁盘与网络带宽都捉襟见肘的情况下,如何使用两种消息队列综合设计架构,避免瓶颈的方法。
2023-03-20 20:28:30 382
原创 基于 librdkafka C API 的三种seek随机访问方法
介绍三种seek offset的方法。kafka seek的时机和特点,是由它的原理决定的。只有消费者已经assign到确切的partition,才能修改offsetassign partition的行为可以是手动的(第一种),也可以是自动的(2、3)当自动assign时,必须选取一个时机,获取当前的分区号,才能设置offset最佳的方法是联合使用1、2、3这三种策略。
2023-03-20 13:39:03 407
Lenovo T490 温度墙修复软件
2023-12-31
Qt FCGI 例子
2020-10-12
gqrx-spectrogram.zip
2020-01-26
基于Qt的多线程流水线异步服务器稳定版
2014-06-07
世界地名对照表Postgres 9.1 导出
2012-09-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人