C#实现海康威SDK视监控预览
前些日子老板要在公司的大屏幕呈现海康威视的监控,并且要求三个九宫格,显示不同的通道(摄像头)。 由于要得比较急,我的第一个方案是采用JS控制网页,自动点击对应的通道,但很显然不行。 尽管是使用网页主控端呈现,但是海康需要安装个客户端插件。 我们在网页中呈现的时候,其实就是给客户端插件发送WebSocket消息,让它显示对应的通道,然后客户端插件就会在网页的位置显示对应的画面,本质上还是用了客户端来播放。 仅仅用JS控制网页是不行的。 于是我结合JS脚本和Api函数SendInput来实现,而且还需要以管理员身份去运行程序,才可以正常调用SendInput点击客户端的窗口。 这个方案有点Low,效果不太理想,因为点击需要间隔,速度慢,而且还会出现点击错漏、错位等问题。 后来我仔细研究了一番,发现可以通过网页主控端开放SDK接口来直接获取监控画面,而且不需要安装客户端。 下面就介绍一下具体的实现方法。 1. 准备工作首先,你需要准备好以下工具: Visual Studio 2019 海康威视设备集成SDK 2. 下载海康威视设备集成SDK海康开放平台:https://open.h...
Butterfly主题使用Artalk时无法使用本地离线词库关键词过滤
前些日子,我在服务器上搭建了Artalk本地评论系统,过程很简单,直接下载二进制文件解压运行,然后在Butterfly主题配置文件里配置一下就可以用了。只是并没有设置关键字屏蔽或审核,于是我在后台设置关键字过滤词库。关键词库是在GitHub上找的,参考:Sensitive-lexicon。但是保存之后,根本就没有生效,于是我检查了一下它的配置文件:artalk.yml发现居然多出了一个反斜杠,竟然是“\\n”: artalk.yml中keywords的file_sep删掉多出的反斜杠,保存就OK了: 看一下效果:
国庆节快乐
愿祖国山河无恙,繁荣昌盛;愿人民幸福安康,和谐美满!
固执己见的时代
我以前有一个同事,在用C#判断字符串是否等于另一个字符串的做法上一直使用类似Java的做法,也就是Equals方法,我跟她讲了很多次这个方法会产生空引用异常。 为什么呢?因为我认为字符串跟其他的基本类型不一样,它在.net framework里面可以为null,我们都知道对象如果为null是无法调用方法的,会抛出空引用异常,所以我在字符串对比的时候会使用==来对比,或者再加一个条件用string.IsNullOrEmpty()先判断一下。 但是这位同事在我的劝说下,依然我行我素,她认为既然都可以报错了,那还怕什么?我不知道她当时的心态,但我感觉她当时似乎有种迷之自信。 直到后来,因为她的代码导致系统瘫了很久,而且她始终找不到问题,后面经过验证之后才发现是因为字符串为空的时候,没有进行异常捕获导致的。 同事的固执己见,直到发生问题之后才默默意识到自己的问题。这例子并不止这方面,它映射了我们这个时代一种令人忧虑的普遍心态:越来越多的人陷入了自我正确的牢笼,缺乏对他人观点的认可与反思的能力。 这种“我永远是对的”的症状在网络上一直存在,而且越发严重。 尤其是比较年轻...
消逝的梭声与AI废墟
八岁那年,我在老宅的阁楼的腐朽木箱底摸到一枚小物件。它两头尖尖的,表面是泛黄包浆色,像极了年深月久的古董小船。 沙发上打盹的爷爷被我扰醒,他饱含回忆地跟我说:“这是梭子,织布机上的梭子。” 一天,在电视上我又看见了“梭子”,梭子就像鱼一样从织布机的织线中穿过来穿过去,小时候的困惑突然解开了。 这种豁然开朗的心情让我在十几年后的今天诡异地重现了。 我有个朋友因为找不到某外卖平台上面的拉黑功能求助于我。 我在搜索引擎上搜索出来的结果一大部分都是AI生成的,这些格式标准却充满错误的教程如同堆砌的数字废墟。 我后背发凉。 我忽然感觉如今我们又站在了新的“文化断层”线上。 AI确实让我们感觉到许多的便利。 未来,似乎正在进入了由AI驾驭的信息时代。 这让我想起编程时的类似问题:我可能只需要用WinForm马上就能创建好窗口程序,但这其中比如消息循环、窗口过程等底层逻辑呢,有多少个开发者愿意深入探究? 面对AI堆砌的数字废墟,我们比任何时候都更需要坚持追根究底和咬文嚼字的精神。 在做软件方面如此,在做其它方面也一样需要。 时刻使用辩证思维,保持质疑和探索的能力,才是穿越文化断层的钥匙。
从大公司出来到中小公司
今年4月份,我鼓足了勇气从我工作了差不多9年的公司离职。 我离开的理由很朴素:9年如一日的薪资,舒适区就像温柔的绳索正在慢慢勒紧我的人生。 离开时我有三天是后悔的,但是几天后发放的工资,让我坚定了离开的信念。 而在新公司这几个月里,我感觉像是穿越到了十年前,这里的信息化水平就跟信息时代里还在点着的白炽灯。 我发现很多维度,大厂体系往往都比较成熟,中小公司往往比较薄弱。 比如: 大公司 中小公司 1 有成熟的OA系统 通过Excel+微信+纸张 2 有SOP(标准作业流程)库 通过老员工口头传授 3 有ECN/PCN系统 通过微信+纸张 4 员工有成熟的信息化培训 “没听过”就等于“不存在” 有一天我需要给某个部门人员安装ERP系统,我问了一下同事:有没有员...
走自己的路
我曾经看过一篇文章,说的是大多数农村的孩子都比城里孩子成熟得要晚一些。 我第一时间感觉这纯扯淡。 但是冷静地想了想,我也是农村孩子,这些年来到城里打工的经历,好像确实也有一些道理。 我曾经认为的所谓成熟,就是对现实的接受程度,就是天然对立于天真。 但是天真,在小时候未必不是件好事。 我从初中开始接触编程。我记得当时老师用VB6.0开发了一个小程序演示给我们看,我瞬间就对这个东西充满了兴趣。 我们宿舍里好几个喜欢去网吧玩游戏的,当然我也不例外,不过我玩游戏也只是从众心理。 我对代码有着非常浓厚的兴趣,想法也有很多,于是鼓捣出了一个安全密保的东西。我的想法很简单:就是通过按钮挡住密保卡的数字,点击按钮按钮就消失,这样就让那些喜欢在我背后偷看密保或者拍照的人无法盗取我的账号了。 当时网吧2块钱一个小时,家里每周就给五块钱零钱,于是,每天下课就去一个小时或者半个小时,搜索教程、代码、注册各种论坛账号寻找答案。 上课时,在作业本上画它的界面,在界面下手写代码。当时没有英文基础,就硬写拼音或者中文——把“Button”写成“AnNiu”、“Picture”写成“TuPian”。 物理老师看见...






