上篇结尾我说这周继续接着干,结果这周过完,我差点被一台体重秤干emo了。
两周了,秤上的数字一动不动先报数据,老规矩:早上空腹,排空,脱到只剩短裤。
79.1公斤。跟上上周一模一样,跟上周也一模一样。
整整14天,这个数字像钉子一样钉在秤上。我从83公斤一路掉下来的时候,最狠的一周掉过1.2公斤,现在倒好,纹丝不动。
腰围倒是给了点安慰:88.5厘米,比两周前又少了0.5。皮带确实又松了一个眼儿。
周三晚上我盯着秤发了半天呆,媳妇路过来了句:”你这不是没瘦,你这是没瘦在秤上。”
我当时没听懂,后来懂了。
这周的训练量,我偷偷加了码不甘心归不甘心,练还是照练,而且我把量往上加了一成:
周一硬拉日:60公斤4组×8,最后一组冲了个70公斤×3,腰没喊疼,握力先扛不住了;
周三卧推:45公斤4组×8,最后一组力竭,媳妇在旁边护着才敢上;
周五深蹲:55公斤5组×5,蹲完上楼梯像踩棉花;
周日带大晨去公园,他骑自行车,我跑步跟了40分钟,配速六分半,心率一直在150上下。
说实话,周一拉完70公斤那三个,我兴奋得像捡了钱。一个42岁的老腰,能从地上拉起70公斤,搁两年前我是不敢想的。
大晨 ...
上一篇结尾我说这个系列继续写,这不就来了。写到第 25 篇,今天聊一个我干运维这么多年最痛的话题,勒索病毒和数据备份。
一场勒索病毒,让代账公司差点关门上个月做代账的老周给我打电话,声音都是抖的:公司那台存客户账套的服务器,一晚上文件全变成 .lockbit 后缀,桌面弹着勒索信,要 3 个比特币。
200 多家客户的账套全在那台机器上,没有任何异地备份。交赎金,按行情小二十万;不交,多年心血归零。最后花 5 天时间从一块半年前的旧移动硬盘里扒回一部分数据,勉强保住 70% 的客户,剩下 30% 只能一家家上门道歉。
装修公司也一样惨。我一个做全屋定制的客户,效果图、施工图、报价单全在共享盘里,中招那次整盘加密,工人停工三天,违约金比赎金还贵。
数据是企业的命根子,备份就是给命根子上保险。 这话我讲了十年,老周是真金白银才听进去的。
勒索病毒是怎么进来的很多老板以为病毒离自己很远,其实常见的门就这么几扇:
RDP 弱口令。远程桌面 3389 端口暴露在公网,密码还是 admin123,黑客扫一晚上就进来了。老周就是这么中招的。
钓鱼邮件。“您有一张发票待查收”“快递到了请改地址”,附 ...
上一篇结尾我说过,单层循环大晨已经基本拿下了,接下来该上点”硬菜”。这不,本周陪跑,《一本通·编程启蒙 C++版》正好推进到循环章节的”打印图形”小节——for 套 for,嵌套循环,来了。
说实话,这个知识点我当年自己学 C 语言的时候也卡过一下,所以我提前给大晨打好了预防针:今天可能会有点绕,绕不过来不怪你。
循环套循环,到底是什么玩意我没急着讲代码,先拿生活里的例子打比方:外层走一步,内层跑一圈。
我跟他说:你每天上学,是一层大循环;而在学校里,每节课 40 分钟,是里面的小循环。一天 8 节课都上完,外面那个”天”的循环才走完一步。
大晨听完来了句:”爸爸,这不就是套娃吗?”
行吧,这词比我的”学校循环论”形象多了。后面我俩干脆就把嵌套循环叫”套娃循环”。
第一题:打印星号矩形书上的例题很经典:打印一个 3 行 4 列的星号矩形。
123456789101112#include <iostream>using namespace std;int main() { for (int i = 1; i <= 3; i++) { ...
上一篇留了钩子:真中了勒索病毒,第一时间干哪几件事?赎金交不交?怎么跟做数据恢复的人打交道?
先交作业:第一件事是拔网线、断共享,把中毒机器隔离;赎金别急着掏,市面上不少病毒家族都有现成解密工具,先找正规恢复公司评估,谈的时候说好“数据没落地不付全款”。这些坑我们替王总躲过去了,最后磁盘底层抠回七成文件,一个比特币没花。
但财务那台电脑最惨,SQL 数据库被加密得最狠。王总的用友 T3,最后一次备份停在去年 12 月,中间 8 个月的账,全指着从坏库里一点点抠。
那一个礼拜我基本泡在他们财务室,把 T3 备份恢复的路子完整走了两遍,今天全写出来。
手动备份:在系统管理里,不在软件里很多人在 T3 界面里翻半天找不到备份,因为入口在系统管理:
开始菜单 → 用友 T3 系列 → 系统管理;
「系统」→「注册」,用户名 admin,密码默认为空;
「账套」→「输出」,选中账套,选个路径,确定。
出来一个文件夹,里面是 .lst 列表文件 + .bak 数据文件,将来恢复时选的是那个 .lst。
三个坑:一是必须用 admin 登录,账套主管进去只能看年度账的输出,账套级的输出引入只有 ...
上一篇结尾我说,for 循环的”初始化、条件、更新”三件套,大晨已经捋顺了,让他睡一晚消化消化。结果第二天一早他主动凑过来:”爸,循环除了数数还能干啥?”我说干啥?for 循环的看家本领,今天就上——累加器。
按《一本通·编程启蒙 C++ 版》的进度,咱们正好翻到循环结构的应用部分。GESP 1 级真题里,求和、计数这类题是常客,这篇必须掰透。
从 1 加到 100 说起我先给大晨出了道老题:1+2+3+……+100 等于几?
他抄起草稿纸就要竖式,我拦住他,讲了高斯的故事——小高斯发现 1+100=101,2+99=101,一共 50 个 101,几秒交卷,答案 5050。
大晨听完幽幽来一句:“高斯这不就是偷懒吗?他偷懒被表扬两百年,我考试抄近道为啥挨说?”
我一时语塞,缓了半天说:程序员这行的本事,一大半就是”合理偷懒”——把重复的活儿丢给机器。来,写个程序,输入 n,输出 1 加到 n。
累加器:准备一个空盒子,往里不停扔思路很简单:准备一个变量 sum,一开始等于 0,然后循环 n 次,每次把 i 扔进 sum 里。
大晨看到 sum = sum + i; ...
上一篇结尾我说,这周要跟卡了三周的79公斤死磕到底。说实话,周一早上光脚站上秤之前,我深呼吸了三次。
卡了三周的秤,终于松口了周一79.3,周三79.1,周五早上——78.6。
掉了0.8公斤,三周的平台期,一周收复。
更要紧的是腰围。拿软尺一量,90.5厘米,从最初的98厘米算起,已经缩了7.5厘米。其实这三周体重不动的时候,腰围一直在偷偷降。体重是给外人看的,腰围才是给自己穿的。 裤子不会骗人,原来扣不上的那条西裤,现在能塞进一个拳头。
训练:不求大,求稳这周三练,每次70分钟:
周一:深蹲80公斤,5组×5个,组间休息2分钟;
周三:卧推60公斤5×5,哑铃划船24公斤3组×10个;
周五:硬拉冲了一把——之前一直在95公斤晃,这周上了100公斤,做了5个。第5个起来的时候杆子有点晃,但我站直了,没弓腰。
奔五的人,不跟小伙子比冲重量。中年人的进步不是杠铃片往上加,是动作越来越干净。 深蹲这周让健身房的老张帮忙看了看,他说我膝盖终于不打晃了,就这一句话,我高兴了一晚上。
吃:晚饭主食砍掉三分之一早餐还是老三样:两个鸡蛋、40克燕麦、一盒牛奶;中午食堂正常吃,多打一份青菜;变化 ...
上篇结尾我说,这个暑假过得有点放纵,秤都没敢多上,账等开学再算。这周大晨正式开学升初一,我这笔账,也到了清算的时候。
暑假欠的债,开学第一天就得还周日晚上,我鼓起勇气站上体脂秤:77.9公斤,比放假前整整重了三斤。腰围也从88厘米涨回了90.5。
原因不复杂:外婆家的红烧肉、夜市的烤串、每晚陪大晨看比赛集锦时的半瓶冰啤酒。中年人的肉,长的时候一声不吭,减的时候全是眼泪。
好在长胖用了一个暑假,还债只需要一个开学季。
作息掰回来,训练提上去大晨6点20分起床,我这个当爸的不好意思赖床,索性跟着起。早饭从楼下的油条豆浆,换回自己煮的两个鸡蛋、一碗燕麦、一盒牛奶。
训练也恢复了强度。周三晚上这堂课:
深蹲:95公斤,5组×5次
硬拉:120公斤,3组×3次
引体向上:4组×6个
平板支撑:3组,最长一组2分40秒
整堂课55分钟,练完大腿抖得下楼梯都得扶着墙。这种酸痛感,比暑假的啤酒味踏实多了。
周五早上再称:76.9公斤。一周还回去一公斤,这速度我满意。
大晨的体测单,给我上了一课开学第一周,学校就搞了体测。大晨拿着成绩单回来,一脸得意:”爸,跳绳我一分钟158个,你行吗?”
我不服, ...
上篇收尾我说,这个系列还得继续往下写。这不,第 23 篇来了。
隔了几天没更,是因为上个月我一直在处理一个“事故现场”,一家装修公司的服务器中了勒索病毒。今天就拿这单真实案例,讲讲为什么我说数据备份是企业的生命线,没有之一。
一觉醒来,800G图纸全变成“.locked”那天早上七点不到,装修公司王总的电话就来了,声音是抖的:“强仔,服务器上文件全打不开了,后缀全变成 .locked,桌面还多了个 txt!”
我远程一看,心凉了半截:五年多的施工图、预算表、合同扫描件,800 多个 G,全被加密。勒索信写着要 0.3 个比特币,三天内付款。
出门时大晨问我干嘛去,我说电脑中了病毒。他歪着头:“电脑又不是人,也会生病啊?”后来我跟王总解释,用的就是这句——电脑确实会“生病”,而且是被人故意投的毒。
病毒怎么进去的?翻来覆去就四条路排查下来,王总中的是最典型的RDP 远程桌面弱口令:3389 端口直接映射公网,administrator 密码是“公司名+123”,爆破工具跑一晚上就进去了。这是国内中小企业中招的第一大途径。
另外三条常见路数:
钓鱼邮件:伪装成“发票”“对账单”,附件一点 ...
上篇的坑,今天来填上篇结尾我卖了个关子:给你一个整数,怎么把它每一位倒着输出?昨晚大晨刷牙的时候还在琢磨,含着一嘴泡沫问我:“爸爸,是不是得先算出它有几位?”
我说你先别急,今天这 25 分钟就干这一件事。
两把刀:%10 取一位,/10 砍一位《一本通》循环这一章的应用题里,拆数是绕不开的坎。核心就两句:
n % 10:取出个位。123 % 10 = 3。
n / 10:砍掉个位。123 / 10 = 12。注意整数除法直接丢小数,不是 12.3。
拿 123 给大晨演示:取走 3 剩 12,取走 2 剩 1,取走 1 剩 0。每一步“取一位、砍一位”,数就一层层剥开了。大晨听完来了句:“那不就是拆快递吗,一层一层拆。”行吧,这个比喻我记下了。
大晨的直线思维他第一反应是不用循环:“三位数我学过啊!个位、十位、百位存进三个变量,倒着 cout 出来不就行了?”
没错,上一课分离三位数那招他记得挺牢。但我随手写了个 12345,他沉默了——总不能定义五个变量吧?位数一多就歇菜,这就是硬编码的天花板。我趁热打铁:你发现没有,“取一位、砍一位”这 ...
上篇文末说好的,实操干货继续安排。做用友代理整十年,每年最后几个工作日我手机就没消停过,全是结账结不了的求助电话。
上周三晚上,我正陪大晨背英语单词,机械厂的王会计打过来:结账卡住了,提示“本月尚有未记账的凭证”。大晨在旁边悠悠来一句:“爸爸,你的手机比我还难缠。”行吧,那这篇就写它。
报错一:有未记账的凭证最高频的一个,我粗略估了下,能占结账报错的六成以上。
排查路径:总账 → 凭证 → 查询凭证,凭证类别选全部,勾上“未记账凭证”,一查一个准。
常见就两种:一是漏记账了,进 总账 → 凭证 → 记账,全选、下一步、记账,三下搞定;二是凭证压根没审核,记账按钮是灰的。注意,谁审核的谁才能弃审,换个人登录是没用的,这一点记死。
还有个隐蔽坑:凭证作废了但没整理,部分版本也会卡在结账,跑一遍 总账 → 凭证 → 整理凭证 就好。
报错二:对账不平提示对账不平,八成是期初余额埋的雷。去 总账 → 设置 → 期初余额,点“试算”按钮,看借贷方合计差多少。
我见过最离谱的,一个科目余额手抖录了两遍,差了整整 37 万,会计自己对了一个礼拜没对出来。
报错三:别的模块没结账T3 是“先业务后财务 ...

