- 博客(45)
- 收藏
- 关注
原创 Java ProcessBuilder 启动的进程阻塞不退出问题
java通过调用进程读取输出启动进程的标准输出时,如果被调用进程的,标准输出以及错误流的缓冲区被写满, 后续写入会导致调用进程会卡住,无法正常结束。确保waiffor之前读取清空了所有流数据,并在waitfor 之后 关闭流。在waifor 之前关闭仍有可能卡住!
2025-01-16 08:51:54
821
原创 网络抓包调试实践
网络抓包这个话题,有一定开发经验的多少都有所了解,常用软件Wireshark,Fiddler用起来也非常傻瓜,本文不会涉及。 一般的介绍网络抓包的文章,到能抓到数据包通常就结束了。但显然认识工具是一会儿事儿,理解本质,清楚实践中啥时候该用,是另外一会儿事儿。让新人小白自行举一反三,可能多少有些困难。 近期正好参与了一些网络相关问题的排查, 在此从实践角度备忘下,网络抓包的本质意义,以及使用中的一些具体问题。
2024-12-24 16:06:56
1013
原创 获取客户端真实IP
这里主要备忘下,如果服务器处于端口回流(hairpin NAT),keepalived,nginx之后,如何取得客户端的外网IP。
2024-08-07 17:47:22
1683
1
原创 SSL/TLS深入浅出
起因是公司最近在搞安全加固,想起了历史原因用了很久的FTP服务,这东西众所周知是明文的,裸奔的用户名密码,被监听是分分钟的事儿。于是寻思加个密吧,搜了下发现有个FTPS( FTP over SSL),很容易联想到一个更常用的https(http over。SSL), 展开一搜还有各种 XXXX - over - SSL。 如SMTPS,POP3S, LDAPS等,于是问题来了,SSL到底是个啥东西,为啥可以被各种over。
2024-07-29 16:28:30
733
原创 指纹面容识别登录流程概述
本文主要侧重于,整体的移动端指纹/面容实现用户登录的解决方案逻辑的概述,并不叙述指纹识别技术原理, 或者API具体编码过程等具体技术细节。
2024-01-26 11:48:35
1526
原创 XCODE IOS 静态链接库替换升级
坑:注意第4步,不要通过“General”标签页下方的 “Frameworks,Libraries,and Embedded Content” 分栏添加依赖的静态库,理论上应该是等效的,但似乎Xcode 存在bug。4.从Target 属性的 “Build Phases” 标签页中的 “Link Binary WIth Libraries”中,点击“➕”,选择添加Files,多选第3步文件夹中的全部依赖库文件点加入。由于是第三方的一个.a动态库,兼容问题,优先考虑去升级下这个第三方库的最新版本。
2024-01-11 14:06:11
906
原创 VPN端口转发实现无公网IP内网的外网访问
设备选型也是一件比较费神的事情。对于网络摄像机来说,他的回源地址是通过数据包的源IP地址确定的,这个源IP 在端口映射时,要修改为,VPN服务器的 VPN 服务器IP,替换掉用户的外网地址,才能回源路径保持一致。如果你的公司总部有一个固定的IP地址,有一个功能较为丰富的VPN设备(防火墙/路由器)支持VPN服务器,一定的带宽冗余,那么就可以自行DIY,无需使用昂贵的商业产品。这里的外网是有限制的, 是任意的接入互联网的手机,电脑,小程序,可以直接访问,而不是通过将监控点和用户端设备都拨入VPN实现互访。
2023-11-15 17:25:24
5036
原创 白话区块链是什么
可能有的人离开一段时间,少了几笔, 有的人比较糊涂会记错,有的人不是很公正,会多记,少记等等。关于区块链一些常见的名词“去中心化,分布式记账,共识,拜占庭将军问题,POW, POS, 公有链 ,私有链,。所以公有链要有对应的奖励机制。对于技术的概念吹嘘,一般的套路是,把一个已经在行业中应用了一段时间,有点儿用,靠点儿谱的东西拿出来,夸大一点儿吹。2.娃有多少零花钱全看这个黑板上的花花数量(大家都不过脑子去记,去回忆的话),如果娃聪明,自己偷偷贴上两个,如果妈妈聪明,自己偷偷拿去两个,都可以改变娃余额。
2023-09-28 18:04:29
161
原创 高效的Mac快捷键工具 CirMenu
在Mac App store 发现一款好玩儿的应用CirMenu, 他能够提醒你把你用过的快捷键,收录下来, 下次直接通过图形方式触发, 触发使用一个圆形菜单, 非常像游戏里的交互,用起来还是很顺手的。 除了针对不同应用,可以显示触发不同快捷键外, 还可以启动程序,用终端或finder打开路径,用起来还是很方便的。 软件免费没有功能限制,可以在Mac App Store 下载,界面如下,强烈推荐。
2023-08-07 23:46:09
524
原创 Mac装机必备软件2023
与Windows不同,MacOS上流行使用的软件很多都很小众,作者也不是大厂,但有很多却很实用,现在是2023年, 这里介绍几款我常用的免费软件。Monitor Control, Stats ,CirMenu, karabiner-elements
2023-07-27 11:33:28
560
原创 好用的Macos圆盘菜单快捷键应用Radial Menu
当你在应用中按下一个没有被收录的快捷键时,Radial Menu会提醒你是否将其加入特定应用的菜单, 点击通知后,能够非常方便的把快捷键收录进菜单中,以后就可以通过菜单快捷的触发快捷键了。如果有耐心,可以忽略一直用免费。支持鼠标中键, Cmd键和触发角(屏幕的四个角)多种触发方式, 无论你是使用鼠标,触摸板,还是键盘都可以单独触发,多种触发方式可以同时生效非常灵活。同时 Radial Menu 的全局菜单与各个应用的独立菜单是可以相互叠加的,优先显示应用菜单, 如果该位置的应用菜单为空,则会显示全局菜单。
2023-07-13 23:12:31
596
原创 Junit4 一直处于运行中的排查过程
经过尝试发现,工程用到了dubbo,其中的 provider service 越少,@Test执行的越快,当多到一定程度时,这里插一句,苹果芯片的Mbp还是很好用的,除了性能够用之外,最主要是安静+不热。这些Bean可能有各种初始化方法, 阻塞了程序的启动,导致了Junit 卡在Spring上下文建立的过程中。于是,重新调试执行测试,在等待一段超出正常范围的时间后,按下调制器的暂停。回正题, 这类比较诡异问题的排查,一般思路就是猜+试 ,但试和猜的逻辑要清晰。就会表现为,一直处于运行中的状态了。
2023-06-29 08:46:03
344
原创 产品与研发相处之道
方才一个开发经理和兄弟项目组的产品经理怼起来了。事情大概是,两边对接,那边希望我们出一个接口,而我们这边实际上是两个完全不同的实体概念,开发经理觉得应该提供两个基础接口,合成一个不科学。 吵得难分难解,我则狗在一边不说话,希望他们最后能自行解决。结果还是被抓到,锅,你说到底要咋整……
2023-01-11 09:33:48
878
原创 Java Out of Memory Error
1. out of memory 不只是堆内存不足, 虽然比较常见。2. ThreadPool 使用要谨慎, 使用不当属于大杀器。 局部使用要记得shutdown。
2022-09-29 16:05:43
945
原创 大华海康NVR录像JAVA下载及WEB播放
近期在处理一个将NVR录像机上的录像下载到服务器并通过浏览器播放的需求。 梳理记录下过程,做个备忘,同时遇到的一些细节问题解决,也供需要的同学参考。
2022-09-29 15:28:55
4911
原创 JS 正则表达式百分比
第一个数字后,匹配至少2个数字。可以为0-9. 即最小3位 最小100%开头第一个数字需要为1-9,即不能为0。匹配0个或1个 . ,可以没有小数点。以点之后一个或者两个数字结尾。
2022-08-15 16:26:19
1099
原创 你的团队工作量饱和吗?
好看的,性能高的,功能模块多的,没有bug的,支持100w人同时秒杀的,需要投入的成本时间一定比,从网上找个开源的稍作修改甚至不改,要贵若干若干倍。不同的工艺,材料,不同的施工要求,对成本的影响是很大的。”,“团队工作量饱和吗?回到软件领域,如果你的公司模式主要是做项目外包,那每个开发人员都别闲着无疑是你应该追求的,越快的交付时间意味着越低的成本,对应着越高的利润。反而为了让研发饱和,不用白不用,而拼命加一些可有可无的需求,却可能会伤害你的系统的用户体验,技术上让你的系统难于维护,对硬件的需求成本变高。..
2022-08-15 16:07:40
637
原创 驳“一切不谈考核的管理都是扯淡“
一、引子 以我个人的从业经验认为,研发人员的量化考核,始终是一个世界难题。正巧不久前在园子里看到了“一切不谈考核的管理都是扯淡!”一文(下面简称为“扯淡”),该文实际是一篇软文,是想推广一个带绩效管理功能的项目管理系统。这个实际的系统我虽然没有用过,但作者把该系统的设计思想阐述的还是很清楚的。文章的评论也比较多,多数人认为作者比较理想化。 从文章的支持,反对数来看, 目前(2022-7-15)11反对 6支持,也是反对多于支持。 评论较多的是——“太理想化”,锅叔就是如此评论的,因为在评论篇幅所限,
2022-08-02 17:01:22
396
原创 白话电子签章原理及风险
因为业务需要近来在对接一个线上的电子签章平台, 签完的效果就是在PDF上盖一个红色的章。内部过程沟通中发现,对这个红色章背后的证明逻辑,技术原理,能够了解的比较清楚的人还是很少的。甚至连锅叔自己,对其中的一些细节也感觉有些模糊不清,经常一时想不起,不能对答如流-_-||。 签名证书类的技术博文其实很多, 但有个问题,很多只提技术原理,不提证明逻辑,证明逻辑需要自己去领悟。 于是在这里再回忆梳理下,会着重从证明逻辑来说,补充下其他博主日常省略的部分-_-|| ,做个分享,也顺便备忘。 一、签字画
2022-08-02 17:00:17
1802
3
原创 如何提高团队开发质量
年轻的时候去面过一个相对于当时我的比较高端的管理岗位,当时的我情况是,开发经验相对丰富, 但管理经验还欠缺。对方当时面临一个具体的问题。 “我们最近生产上,出现了一个比较严重的事故,复盘的时候,开发喷测试,测试喷开发,都觉得是对方的问题。对于类似情况你有没有什么解决和处理的经验。如何提高软件质量” 我当时对这个问题回答的比较单薄,无非就说,大家要团结合作,开发要加强自测,测试要考虑全面,有责任心。这么说虽然没错,但是只有战略没有战术,也没实例经验。最终,显然对方也不是很满意, 无缘了这个岗位。
2022-07-04 17:23:40
2217
原创 C# Winform程序界面优化实例
进入移动互联网时代以来,Windows桌面开发已经很久不碰了。之前就是从做Windows开发入行的。 当年,还是C++ VC6, MFC的时代。那时候开发要查的是MSDN :-)。内存要自己管理, 排查内存泄漏(忘了释放分配的内存)也是基本日常。光阴似箭,岁月如梭~! 几年之前,北漂时需要写一个windows 的客户端,想招一个c#程序员,专职开发,结果压根就没有人投简历,-_-||,后来只好,亲力亲为。 个人觉得微软的开发环境,工具其实是非常好用的。好上手,效率高。没落的原因,应该主要是没有赶上
2022-06-30 16:47:16
8269
原创 微信聊天内容可以被监听吗
上班摸鱼与网络安全成为了锅叔在博客园阅读数最高的一篇文章,足可见同学们上班摸鱼的热情,同时也反映了大家对网络安全的担忧…… 对于其中的一个存疑问题,“微信的聊天记录内容,到底能不能被监听”。锅叔打算再花点篇幅做一些详细的说明,在“摸鱼”一文中,锅叔得出了一个结论,微信聊天内容是无法被公司取得的。然而几名同学反馈,这个结论可能有问题, 自己的微信聊天记录就被公司截取过, ——“在那个群,和谁聊了什么,看的一清二楚,还可以搜索”,并且使用的是自己的设备,着实让锅叔觉得不可思议。先不论技术,..
2022-04-30 12:00:00
9154
4
原创 小程序字节转GBK及UTF8
前段时间在Android原生搞的BLE扫码枪又要移植到小程序上来。本以为小程序不支持BLE的,结果一搜,还真支持-_-|| 。 蓝牙部分问题不大,遇到的主要问题是,小程序环境如何对字符编码进行判断以及如何进行编码转文字的问题。 扫了一阵,搜到了TextDecoder。结果小程序环境不支持……。 随后搜到了一个polyfill库, 可以用于小程序。 https://github.com/inexorabletash/text-encoding 下载后的文件包含 enco.
2022-04-29 08:52:25
2086
原创 代码规范浅谈
代码规范这东西网上很容易百度到一堆,除了天下文章一大抄的问题,另外,多数只给了结果,原因没有充分说明,或者非常的纠结于大写小写,一个函数可以写几行的细节。感觉有点容易让新人误入歧途。 于是锅叔打算根据自己的经验分析下这些规范产生的原因,帮助新人深入理解为什么这么规定,知其然并知其所以然。 一、“代码规范”的由来 工作中如果你没怎么接手过其他同学的代码,那肯定会比接手过离职同学的代码,经常帮其他同学排查Bug的“大牛”们对代码可维护性的理解,要差上一个数量级。 如果你没
2022-04-29 08:50:54
343
原创 如何入行软件开发
—— 你以为我每天上班就是为了几个臭钱么!? —— 是的,你说对了…… IT是一个有些让业外同行羡慕嫉妒恨的行业,统计数据来说平均薪资应当是仅次于金融行业的,远高于其他传统行业,有一倍甚至数倍的差距。一线城市的一个中高级程序员,可能已经是某些传统行业公司高管的薪资水平了。概率上来说从业IT,确实是一个让寒门子弟咸鱼翻身,改变人生的靠谱途径。 锅叔的从业过程中,走过各种类型的企业,也遇到很多有志于投身IT行业的同学,咨询入行问题。工作中也实际遇到过很多非科班入行乃至转行加入的同事。于是决
2022-04-29 08:48:38
645
原创 性能优化,实践浅谈
当经历了无数的日日夜夜,朝九晚九,攻克了无数难关,终于将系统预定功能开发完成,通过测试,部署上线后。你是否会感觉志得意满,到达了人生巅峰,高唱无敌是多么寂寞。 现实情况是,如果你这个系统,业务没有做起来,没啥人用,huan则罢liao。如果有越来越多的人,持续使用。随着用户增多,业务数据增多,那系统一定会暴露一些性能问题。而对这些问题的优化解决,以及监测,往往需要比开发具体功能,更高更全面的技术素质及能力。 一、性能问题监控 锅叔云:性能问题是具有隐蔽性,服务器硬件性能良好不等于系统服
2022-04-28 14:07:29
242
原创 面试之Java String 编码相关
另有一篇我的字符编码本质入门的文章见这里:编程入门之字符编码与乱码 - 锅叔 - 博客园 实话说,作为一个多年Java老年程序员,直到近来,在没有决心花时间搞清楚Java String的编码相关问题之前, 自己也都还是似懂非懂,一脸懵逼的。设想如果在面试中,有同学能够条理清晰的回答下面的问题,那必是非常了得之人,论智慧武功应该均在本人之上:-)。 问:请预测下面程序的输出,并解释原因。printHexBinary方法为16进制打印Byte 1 String str = "中"; 2
2022-04-28 14:06:36
322
原创 Android BLE 蓝牙开发-扫码枪集成
一、蓝牙模式HID与BLE 当扫码枪与手机连接时,通常采用的是蓝牙HID(Human Interface Device)模式。本质上是一个把扫码枪作为一个硬件键盘,按照键盘协议把扫码后的结果逐个输入到对应的控件上。 优点:无需开发集成,配对就可以立即作为键盘输入使用。可以使用输入框等组件直接接收扫码结果。 缺点:对非数字支持不佳,与输入法相关,在某些时候会触发英文联想-_-||,与虚拟键盘会发生冲突,连接扫码枪时需要切换键盘输入法输入。 而我们要扫描的标签,不仅有英文,特殊符号,
2022-04-28 14:03:51
3008
原创 编程入门之字符编码与乱码
——“为什么服务器收到的请求或者打开的文本文件有时会乱码?” ——“因为编码不对。” ——“编码的本质是什么?为什么编码不对就会乱码?一段文本是如何在网络中传输后最终显示给用户的?Java String默认使用什么编码?” ——“……” 乱码问题相信很多同学都有幸遇到过的,也解决过,但根据个人面试的经验,对该问题知其然亦知其所以然的同学,是少之又少的。故在这里做一下分享,以备在其他的面试中被问到:-)。 因为计算机已经发明很久了,“不要重复发明轮子”也是一句大家耳熟能详的古
2022-04-28 13:56:34
636
原创 Android Zxing 扫码中文乱码解决
Zxing3.2.1之前遇到过Android Zxing扫码乱码的问题,网上搜了下解决了下。 今天又遇到了问题。 依然会乱码。研究总结如下:Zxing 可以在Hints中添加默认编码格式。这个编码格式是用于解读Byte数据时,1.如果码中没有指定编码集则,默认使用该编码格式。2.如果制定了编码集,则使用编码指定的字符集。并非强制,而中文的主要编码格式有两种,GBK和UTF-8。注意,网上有很多提到“ISO-8859-1”这个编码集的,这个编码集是个简单编码集,每个字节一个字符。并不.
2022-04-28 13:55:36
3714
原创 ToneGenerator Init failed Crash
需求需要在扫码时产生一个短促的提示音, 搜了下像这样实现。测试时发现多次扫码后,会触发程序崩溃问题。异常如下java.lang.RuntimeException: Init failed at android.media.ToneGenerator.native_setup(Native Method) at android.media.ToneGenerator.<init>(ToneGenerator.java:746) at com.ganzhi.ap..
2022-04-28 13:53:10
372
原创 Centos部署Loki日志聚合系统
关于一些日志聚合由来及原理科普见我的另外一篇 《编程入门之日志聚合系统》 编程入门之日志聚合系统 - 锅叔 - 博客园 Loki日志聚合系统是由Loki + Promtail+Grafana三部分组成的,这三个依次分别为日志存储引擎,日志收集器,GUI界面,下面我们来简单实践部署下。 1.安装运行Loki及promtail Loki 负责日志测存储,搜索 Promtail 负责收集日志,通过网络发送给Loki 首先去发布页面下载对应的Loki及Promtail版本。ht
2022-04-28 13:42:01
909
原创 编程入门之日志聚合系统
(关心具体部署的同学,可以移步我的另外一篇《Centos部署Loki日志聚合系统》Centos部署Loki日志聚合系统 - 锅叔 - 博客园)一、啥是日志, 为啥要聚合 面试初级同学常问的问题之一就是,一个在线运行的生产系统,如果出现了一些在测试环境复现不了的bug该如何处理啊?错误回答:“我们的系统从没有出过问题”,正确回答:“加日志”。 对于不能稳定复现,或者不方便调试的场景, 通过在程序的执行路径上增加一些文字的记录,输出为文件,供后续分析查看程序的执行过程,是谓之日志。日志可以24小
2022-04-28 13:35:48
668
原创 Android APP升级时解析程序包时出现问题
一个新的测试机在自动下载升级安装更新版本APP时,报出“解析程序包时出现问题”错误。原因众说纷纭, 一番搜索,下面的回答比较全面:Android install apk with Intent.VIEW_ACTION not working with File provider - Stack Overflow简单总结:1. 安卓7以下一般问题不大2. 安卓7及以上需要使用FileProvider3. 安卓7.1 需要在清单中增加REQUEST_INSTALL_PACKAGES 权限.
2022-04-28 13:32:45
3738
1
原创 It is currently in use by another Gradle instance
FAILURE: Build failed with an exception.* What went wrong:Could not create service of type TaskHistoryRepository using TaskExecutionServices.createTaskHistoryRepository().> Timeout waiting to lock task history cache (/Volumes/Mac User/macbook/lab/a.
2022-04-28 13:30:47
457
原创 编程入门之学哪种编程语言?
“想入门编程,应该学那种语言?” 这类问题在五湖四海,世界各地,应当都是比较月经的。 给出的回答呢, 有的会直接告诉你去学Python,有的呢会给一些比喻,说编程语言就像画家手里的笔,有毛笔,钢笔……,有的会给出一个技术栈的图表,告诉你如果你要做XXX,那就学XXX,如果做XXX就学XXXX。 感觉呢这些建议,也都不错,但是通常都比较简略,结果明确,但缘由一般不会展开太多解释。纯新手可能似懂非懂,将信将疑。 自上而下,由整体到具体的理解一个事物,效率往往比从具体到整体要高,更容易明白自己所处的位置
2022-04-27 15:08:28
522
原创 Android 连接蓝牙扫码器 无输入框
Android 的APP 需要集成一个蓝牙扫码器, 特别的是,需要扫码的地方是没有输入框的(EditText),不能通过直觉上理解的通过对EditText输入事件进行监听处理,取得扫码结果。并且设备也没有提供SDK。细想了一下,蓝牙扫码器本质应该是个HID设备,相当于蓝牙键盘。而后豁然开朗。每一次扫码应该会触发按键事件,通过监听当前Activity的按键事件,应该可以实现,无输入框的情况下取得扫码结果。重载Activity中的dispatchKeyEvent实现按键监听。 @Ove.
2022-04-27 15:04:40
1415
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人