友链朋友圈

timeStarry's Blog

【折腾笔记】雷池WAF+FRP+Nginx实现安全可靠的内网穿透

前言 在网上看了许多关于WAF+FRP+Nginx的方式来保护内网穿透的Web服务,但是在网上搜寻的结果都是将WAF部署在了源站上面,由于我的Web服务都是部署在NAS上面,然后使用Frp来穿透访问的,我认为WAF应该部署在服务器上面比较合适,在服务器上面进行拦截异常访问和攻击,这样能大大降低源站的

int... 和 list<int> 和 int[] 的区别

int...(可变参数): 可变参数(varargs)允许传递任意数量的参数,可以看作是一个灵活的方式来接受参数。 语法上是 int...,但在方法内部,它被当作一个 int[] 数组处理。 用法:当方法参数的数量未知时使用,例如: public void sum(int... numbers) {

楠笙

最终2900元的价格卖掉了MacBookPro

自从闲鱼回收掉iPhone13之后,原本就闲置的MacBookPro貌似使用得更少了,这台2020年14000多元购入的笔记本电脑,在周末最终以不足3000元的价格出给了线下回收门店,4年时间蒸发约11000元… 相比GIANT2016款XTC820,闲置八年,多保值啊。更新,换代,降价、贬值…等等,这都是电子产品的宿命,早在2024年武汉热干面涨价到6元之时就打算出掉这台Mac,但因为离职、过年、自驾大西北、求职新工作、度过试用期… 到现在价格又低了1000多元。 最终2900元的价格卖掉了MacBookPro Jeffer.Z 说 “看来用不惯mac啊,我现在用多了mac,总感觉win有点慢。” 在我看来,感觉这个东西很奇妙,各取所需就好,用能解决问题的设备与产品就好。 Mac系统确实丝滑,Retina屏有着不错的效果,还有着更好的影音效果。日常使用没有广告,各种APP程序也非常的方便,续航能力不错,稳定性更是核心优势了,但最终2900元的价格卖掉了MacBookPro的核心就一个—效率。 MBP缺点也挺多,最难受的应该就是Excel的数据处理。两年前配合群辉使用的25TB的OneDrive,去年到期后没在续费,所以配套的 Office365 也无法在 Mac上继续使用。后而开始使用金山WPS处理Excel数据。但是问题来了,人事花名册,月度、季度、年度绩效表,工资表等有着上万条数据的表格在Mac系统上不管是Office还是WPS都是噩梦般的存在。 比如工资单的项目很多,往往有50多列且带计算公式,而600人对应了600行,那么合计要处理近35000个单元格的计算。而年度的工资表更是超过50万个单元格的计算。若要做人力资源薪酬数据分析,那么同时要开多个超过50万个带计算公式的单元格表格。此时的Mac已开始烫手~影响体验。 这仅仅只是工资,而考勤数据等,将更加的庞大。 既...

朋友圈插件:重构

开发这个插件的原因是为了提供对友链的rss进行订阅,在使用过程中发现原有的版本功能繁杂且不实用。 因此决定对插件进行重构,使其更加简洁易用,优化功能,以便用户更好的使用。 原版本 1.3.4版本之前 前台页面移植自博友圈 管理端

回忆航线

VivoX100Ultra三个月使用体验

2024年05月13日VivoX100Ultra发布,05月28日开售后第一时间下单,入手了这台VivoX100Ultra,这也是Vivo品牌首台Ultra机型。之所以最终选择Vivo手机产品,很大程度是因为去年给老爸购买的X90Pro+后,在使用中产生的各种好感。 从武汉出发到敦煌-自驾青甘大环线之旅回来后,就决定要换手机,经历了两次二选一阶段。 第一次的二选一,是 HyperOS 和 OriginOS 之间的选择,HyperOS至今还有较多的卡顿,而近年来的OriginOS系统是越做越顺滑。这里并不是说小米不行,而是小米造车必须雷总亲自带队,在研发重心上可能会有影响吧。虽然自己不算是一个百分百的米粉,但始终在很多行动上是愿意支持小米的。 买过几款小米系手机,Mi1S,RedmiNote5 使用时间都不算长,是因为确实发现有一些不好用的地方,始终不愿再次入手小米系列手机,也有过去这两台手机在使用中的一些原因,具体问题就不说了,但造成的影响,有点挥之不去。 小米14Ultra在实体店看过至少三次…最终放弃。 X100sPro和X100Ultra之间的选择 X100sPro和X100Ultra性能其实都够,X100sPro京东方和维信诺屏幕混用,两者都不支持类DC调光,到手最终是哪家,就看运气了…其实X100Pro的性价比要更高,京东方屏不混用,但已停产。电子产品本着买新不买旧的原则,进入销售生命末期的X100Pro也自然不会再考虑。 而同为16G+512G的配置,X100sPro和X100Ultra之间有着1700元的差价,有点泪奔。 哎,最后懒得再想了,直接下单X100Ultra了 X100Ultra缺点: X100Ultra的80W充电,80W的功率在此,相比X100Ultra外其它X100系列机型的120W充电头,功率同比下降50%,有点难以接受。当然X100Ultr...

【随手记】现代软件工程核心实践与理念 | 敏捷、CI/CD与DevOps

自学习计算机以来,这些术语就时长在眼前晃悠。随着实践经验和项目经理的增加,软件工程相关的词汇出现频率越发高了,但在实践过程中,大家对它们都有各自的理解,在实践中许多含义都有分歧,我们需要随时梳理它们,并跟随软件工程先进实践不断更新自己的理解。 基本概念 敏捷 (Agile) 敏捷是一种软件开发方法论,旨在通过迭代、增量的方式快速交付高质量的软件,并且能够适应不断变化的需求。敏捷强调的是团队的协作、客户反馈和灵活性。 核心原则: 迭代开发和增量交付 客户需求的持续反馈和响应 自组织的团队和跨职能合作 持续交付可工作的软件 背景:在 20 世纪 90 年代末至 2000 年代初,传统的瀑布式开发方法面临着适应性差、开发周期长等问题,无法满足快速变化的业务需求。于是,17 位软件开发者在 2001 年共同签署了《敏捷宣言》,标志着敏捷理念的正式提出。 CI/CD (Continuous Integration/Continuous Deployment) CI/CD 是一种软件工程实践,用于自动化软件的构建、测试和部署过程,旨在实现更高效、更可靠的软件交付。 核心概念: 持续集成 (CI):指的是开发人员频繁地将代码集成到主干分支,并通过自动化构建和测试来验证代码的正确性。 持续交付 (CD):指的是持续将集成后的代码自动部署到生产环境之前的阶段,确保代码能够在任何时候都可以安全地发布到生产环境。 背景:CI 的理念最早由软件开发方法 XP(极限编程,Extreme Programming)推广,旨在解决开发过程中代码集成的困难。Martin Fowler 在 2000 年发表了关于 CI 的文章,使这一理念得以广泛传播。随着 CI 的普及,开发者开始探索将持续集成扩展到自动部署,以实现真正的持续交付和部署。Jez Humble 和 David Farley 在 2010 年出版...

光溯星河

按下Ctrl+Alt+Del后发生了什么:Windows高优先级的中断信号与系统安全设计

Ctrl+Alt+Del或者Ctrl+Alt+.对双手长期游走键鼠之间的同学来说绝不会陌生,按下这个组合键后,Windows系统会打开一组简洁的菜单。这个菜单中包括了用户操作和任务管理器。 已经不记得是初中信息课还是什么场景下,有人教我这个组合键,告诉我可以通过Ctrl+Alt+.这个组合键快速打开任务管理器。所以,在我认识计算机的相当长的一段时间里,这个组合键就算是任务管理器专用快捷键了。然而事实上一步到位打开任务管理器的应该是Ctrl+Shift+Esc这一组合键,还避免了用鼠标再点一次。 但是Ctrl+Alt+.得到如此广泛的传播,定有其原由。在一次偶然的实践中,我发现这个组合键似乎不仅仅是我想的那么简单。 知其然:Windows安全选项界面 我通常会在离开座位前使用Win+L锁定电脑,我经常离开我的台式机数小时甚至更长的时间,所以我经常会遇到一个麻烦的事情:当我回到电脑面前时,无论我如何点击键盘或鼠标,Windows都无法正常唤起锁屏逻辑,进入PIN输入页面,就好像 电脑死在了锁屏界面。一开始我只能用重启的方式解决这个问题,直到有一次我回在电脑前和别人唠嗑,偶然间摁下了Ctrl+Alt+.,原本卡住的锁屏页面弹出了PIN输入页。这一现象立马触动了我这浅薄的计算机认知神经,我意识到这个组合键触发了某种中止操作,且优先级极高。 而在操作系统用户状态下摁下这组组合键,打开的页面便是“安全选项”界面,Windows在这里提供了关于用户和进程安全的操作选项。 Tips:如果您需要在远程桌面上使用这一组合键功能,应当尝试Ctrl+Alt+End. 知其所以然:按下组合键后操作系统做了什么 Ctrl+Alt+Del 之所以能够在系统高负载或卡死的情况下仍然响应,源于其在系统架构中的特殊设计: 硬件级别的中断:这一组合键被设计为直接触发硬件中断信号,绕过常规的软件层。这使得操作系统...

光溯星河

用友 NC65 编辑前后事件机制和开发实例

编辑事件响应机制 NC65中提供了关于编辑事件的多个抽象类,按表单结构和编辑前后划分为4类,外加新增和组织变更事件,一共是6种响应事件,分别为: 表头表尾编辑前事件 CardHeadTailBeforeEditEvent 表头表尾编辑后事件 CardHeadTailAfterEditEvent 表体编辑前事件 CardBodyBeforeEditEvent 表体编辑后事件 CardBodyAfterEditEvent 新增事件 AddEvent 组织变更事件 OrgChangedEvent 理解这样的事件划分还要理解表头表尾和表体的划分机制。在NC系统中,我们打开“模板设置-集团”,随意打开一个单据模板就可以发现模板被分为三个部分:表头、表体和表尾。其中,表头和表尾的许多事件是被视为一个项目解决的,表体则是作为一个单独的项目进行处理。 编写相应事件均需编写事件类并注册相应的事件XML。 编辑事件开发实践 0. 需求分析 在参照开发的文章中,我提到了编辑事件相应的需求,这个需求是这样的:在NC单据的表头中存在一个仓库字段,我们需要使用该字段过滤表体参照当中的数据。即当表头选取为“A仓库”时,参照中仅包含A仓库的物料。 实现这个需求我们可以考虑两种方式: 表头仓库字段编辑后更新参照中的物料; 点击表体参照编辑前获取仓库字段中的值; 两种方式都可以,但很显然,在点击参照前去获取值是更容易的操作,也更符合我们“找仓库 -> 找物料”的线性逻辑。所以我们选择开发一个表体编辑前事件来实现这个需求。 完成需求分析后,应当定位到需求功能所在的模块和包,在指定包下创建编辑事件代码。若原来的模块下没有包括编辑事件handler的包,则需自行创建。 1. 事件代码开发 编写编辑事件均需实现IAppEventHandler接口,该接口定义了处理特定事件的方法,然后须要重写handleAppEven...

光溯星河