欢迎来到Heck's Blog,专业承接拿站、企业建站、仿站、网上商城架构、门户网站搭建、空间域名注册、软件定制等项目。关注网络安全,因为专注,所以专业,懂得放弃,才能收获。有事请发邮件至i@heckjj.com,请记住本站网址:http://www.heckjj.com,多谢。
1月29
Sublime Text V4200及以上版本激活注册方法另请参阅:
https://www.heckjj.com/post/678/

问题描述
2025.01.20 Sublime Text更新了最新版本V4192,本文介绍该版本的激活注册方法
本文激活注册方法同样适用于V4192及以下版本(已实测版本:V4180~V4192)
激活过程无需使用第三方软件

下载地址
官方网址:https://www.sublimetext.com
更新日志:https://www.sublimetext.com/download
下载地址(V4200 64位):https://download.sublimetext.com/sublime_text_build_4192_x64_setup.exe
未激活表现显示为unregisted


激活方法
找到Sublime Text安装路径
右键快捷方式→打开文件所在的位置
默认安装路径:C:\Program Files\Sublime Text
找到sublime_text.exe,拷贝一份副本,使用Sublime Text打开副本文件
也可以使用其它能够以十六进制打开exe文件的编辑软件
另外推荐一个基于浏览器的在线十六进制编辑工具:https://hexed.it/


使用快捷键Ctrl + H打开搜索替换功能
查找以下十六进制字段
8079 0500 0f94 c2
替换为
c641 0501 b200 90



替换完成后使用快捷键Ctrl + S保存并关闭
移除原sublime_text.exe文件(或改为其它名称备份),然后将编辑后的副本文件名称修改为sublime_text.exe
激活后表现
1月28
Sublime Text V4192及以下版本激活注册方法另请参阅:
https://www.heckjj.com/post/679/

问题描述
2025.05.21 Sublime Text更新了最新版本V4200,本文介绍该版本的激活注册方法
激活过程无需使用第三方软件

下载地址
官方网址:https://www.sublimetext.com
更新日志:https://www.sublimetext.com/download
下载地址(V4200 64位):https://download.sublimetext.com/sublime_text_build_4200_x64_setup.exe
未激活表现显示为unregisted

激活方法
1、找到Sublime Text安装路径
右键快捷方式→打开文件所在的位置
默认安装路径:C:\Program Files\Sublime Text
2、找到sublime_text.exe,拷贝一份副本,使用Sublime Text打开副本文件
也可以使用其它能够以十六进制打开exe文件的编辑软件
另外推荐一个基于浏览器的在线十六进制编辑工具:https://hexed.it/

使用快捷键Ctrl + H打开搜索替换功能
查找以下十六进制字段
0fb6 5105 83f2 01
替换为(二选其一即可)
c641 0501 b200 90

c641 0501 4885 c0

替换完成后使用快捷键Ctrl + S保存并关闭
移除原sublime_text.exe文件(建议改为其它名称留作备份),然后将编辑后的副本文件名称修改为sublime_text.exe
激活后表现为无unregisted
1月21
由于售后服务条款:已激活windows系统或Ofice的主机,不支持7天无理由退换货。由于windows系统联网时自动激活,请您确认需求后再激活使用。

在Windows 11安装或首次设置过程中跳过联网步骤,可通过命令提示符输入特定指令实现。‌核心方法是:在联网界面按 Shift + F10(笔记本需加 Fn)打开命令提示符,输入 oobe\bypassnro 后回车,重启后选择“我没有Internet连接”选项即可‌。以下是详细步骤:‌‌‌


操作步骤(通用方法)
此方法适用于所有Windows 11版本(24H2及更早),成功率最高:

‌进入联网界面‌:在系统安装或首次开机设置时,到达“连接网络”页面(需输入Wi-Fi或网线连接)。‌

‌打开命令提示符‌:
台式机:直接按 Shift + F10。
笔记本:按 Fn + Shift + F10(部分机型需组合键)。‌

‌输入跳过指令‌:
在弹出窗口中输入:oobe\bypassnro(或 oobe\bypassnro.cmd),按回车。‌
或者先cd oobe再输入bypassnro.cmd回车


系统自动重启(约1-2分钟)。‌

‌选择离线选项‌:
重启后返回联网界面,点击底部 ‌“我没有Internet连接”‌。
后续按提示设置本地账户(无需微软账号)。‌

注意事项
‌网络断开建议‌:若在虚拟机或笔记本操作,提前断开Wi-Fi/网线可提高成功率(非必须)。‌

‌命令无效处理‌:若输入后未重启,检查拼写(如 bypassnro 非 BYPASSNRO),或改用任务管理器结束 OOBE Network Connection Flow 进程。‌
‌后续影响‌:跳过联网后部分功能受限(如OneDrive同步),但基础使用无碍;进入桌面后可重新联网。‌
1月19
win11家庭版升级到专业版/企业版教程,专业版/企业版回退到家庭版也是一样的

准备工作
资源都是网上获取的,网友分享出来的,不一定都有效,作者试的时候第一个专业版就可以使用。

win11专业版序烈号:
D9W3G-NR2D7-6W3RK-WDD4J-7FR9G
Y7DJH-BN6WF-BB3RV-82F8F-R3KTY
Y4N7X-CF46G-92G6X-PW86V-VT9TT
RWQ2G-NXBQJ-JRT27-WX36H-JQKTT
H7HNM-BWTTC-4M99X-KM3Y3-B98XG
RHNCY-6QJWF-WPHP7-2FP87-4C2KG
win11家庭版序烈号:
MNBKY-RCQKQ-HHC9Q-M99RP-D68K3
NT7K-GCD4D-WYVCH-W6CRX-Y7TVD
7WVY4-3N6D4-WRQBV-286XJ-7FQ3Q
PNGPM-B8MVX-VV7MH-MJ9M7-MBGVD
TFFXW-N6BG8-6WTBC-3Q4GY-CWD3Q
D9YRN-B6QMK-XF7BY-6DM99-RM33Q
win11教育版序烈号:
RNXJ9-3R383-8HDD2-44K63-Y4G4V
768RN-FVXXG-7DTYF-XGVJ3-XHJWB
JFMNH-FY6TV-T2JCW-6R6P3-T6PJB
V279K-24N46-KM9BG-VVMT8-JFG4V
XGVPP-NMH47-7TTHJ-W3FW7-8HV2C
win11企业版序烈号:
WGGHN-J84D6-QYCPR-T7PJ7-X766F
3KHY7-WNT83-DGQKR-F7HPR-844BM
7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH
PVMJN-6DFY6-9CCP6-7BKTT-D3WVR
TX9XD-98N7V-6WMQ6-BX7FG-H8Q99
PPBK3-M92CH-MRR9X-34Y9P-7CH2F
可以用这两个序烈号试试看
J8WVF-9X3GM-4WVYC-VDHQG-42CXT
7Y64F-88DCY-Y6WTC-H33D2-64QHF
开始
1、打开系统设置,并选择激活

​2、选择更改产品秘钥;

备注:因为本人已经激活了,这里只是演示,真实操作方法也是这样;

3、在对话匡中输入你想要激活的windows 11版本

我用的是D9W3G-NR2D7-6W3RK-WDD4J-7FR9G;

完成后最好重启一下电脑;
7月17
当你还在一个词一个词地调教 Prompt 时,硅谷的大佬们已经在布局上下文工程(Context Engineering)了。

推特上的 AI 架构师 @HeyNina101 一针见血地指出:「提示词工程是给爱好者玩的,上下文工程(Context Engineering)才是专业生产力。」这条推文迅速引爆了硅谷技术圈,Shopify CEO Tobi Lutke 和前特斯拉 AI 总监 Andrej Karpathy 等大佬纷纷点赞。

Prompt vs 上下文

你在对话框里敲下的指令,就是 Prompt。

但一个能打的 AI 应用,需要的远不止 Prompt。还需要为模型构建整个世界观,这就是「上下文工程」。

上下文工程包括:

任务设定:明确告诉 AI 要干嘛
案例示范:给它几个栗子学学
外部文档:挂载知识库,让它变身专家
对话历史:让 AI 拥有短期记忆
工具输出:调用 API 后的结果反馈
系统状态:应用当前的运行情况
长期记忆:跨越对话周期的记忆
信息压缩:在有限的上下文中高效传递信息
多模态:不止文本,还有图片、声音等等

上下文给的太少,AI 就是人工智障;给的太多,系统就运行变慢、或者烧光你的预算。如何拿捏好这个平衡,不仅仅是简单的指令艺术,更是一个系统设计的挑战。

真正的LLM应用,远不止套壳

一个生产级的 LLM 应用,不仅仅是上面这些,还需要:

控制流:设计 AI 的思考和行动路径
上下文打包:智能筛选、组合信息喂给模型
模型路由:根据任务,自动切换最合适的模型
UI 与生成验证:确保输出的内容能看、能用
安全护栏、评估、预取、并行计算...

这个复杂的系统,我们称之为 LLM 软件工程,而「上下文」正是这个新世界的核心层。

到底是谁在控制 LLM?

Google DeepMind 的工程师 Philipp Schmid 用一张图给出了答案:真正决定 LLM 行为的,是一个由指令、用户输入、历史、文档、工具等共同构成的庞大上下文系统。

所以,别再只盯着那个小小的输入框了。

你认为上下文工程会是下一个风口吗?
独立开发者如何抓住这个机会?
评论区聊聊你的看法
点击在新窗口中浏览此图片点击在新窗口中浏览此图片点击在新窗口中浏览此图片点击在新窗口中浏览此图片

7月17
本篇文章深入分析了大型模型微调的基本理念和多样化技术,细致介绍了LoRA、适配器调整(Adapter Tuning)、前缀调整(Prefix Tuning)等多个微调方法。详细讨论了每一种策略的基本原则、主要优点以及适宜应用场景,使得读者可以依据特定的应用要求和计算资源限制,挑选最适合的微调方案。

一、大型模型微调的基础理论
大型语言模型(LLM)的训练过程通常分为两大阶段:

阶段一:预训练阶段
在这个阶段,大型模型会在大规模的无标签数据集上接受训练,目标是使模型掌握语言的统计特征和基础知识。此期间,模型将掌握词汇的含义、句子的构造规则以及文本的基本信息和上下文。
需特别指出,预训练实质上是一种无监督学习过程。完成预训练的模型,亦即基座模型(Base Model),拥有了普遍适用的预测能力。例如,GLM-130B模型、OpenAI的四个主要模型均属于基座模型。

阶段二:微调阶段
预训练完成的模型接下来会在针对性的任务数据集上接受更进一步的训练。这一阶段主要涉及对模型权重的细微调整,使其更好地适配具体任务。最终形成的模型将具备不同的能力,如gpt code系列、gpt text系列、ChatGLM-6B等。

那么,何为大型模型微调?
直观上,大型模型微调即是向模型“输入”更多信息,对模型的特定功能进行“优化”,通过输入特定领域的数据集,使模型学习该领域知识,从而优化大模型在特定领域的NLP任务中的表现,如情感分析、实体识别、文本分类、对话生成等。


为何微调至关重要?
其核心理由是,微调能够“装备”大模型以更精细化的功能,例如整合本地知识库进行搜索、针对特定领域问题构建问答系统等。
以VisualGLM为例,作为一个通用多模态模型,当应用于医学影像判别时,就需要输入医学影像领域的数据集以进行微调,以此提升模型在医学影像图像识别方面的表现。
这与机器学习模型的超参数优化类似,只有在调整超参数后,模型才能更好地适应当前数据集;同时,大型模型可以经历多轮微调,每次微调都是对模型能力的优化,即我们可以在现有的、已经具备一定能力的大模型基础上进一步进行微调。
5月29

Elasticsearch拼音分词

10:57编程杂谈  From: 本站原创
elasticsearch的分词器对于文本分析至关重要。对于中文等语言,合适的分词器可以显著提高搜索相关性和结果的准确性。拼音分词器不仅支持基于拼音的搜索,还能实现拼音自动补全等功能。本文将介绍如何在Elasticsearch中安装拼音分词器,以及如何配置和测试它。

分词器的三要素
在Elasticsearch中,分词器(Analyzer)由以下三个主要部分组成:

Character Filters(字符过滤器):在Tokenizer处理之前对文本进行预处理,如删除或替换特定字符。
Tokenizer(分词器):按照一定的规则将文本切分成词条(Term),例如ik_max_word就是智能切分中文。
Token Filters(词条过滤器):对Tokenizer输出的词条进行进一步处理,如转换为小写、同义词替换、拼音转换等。
安装拼音分词器插件
步骤1:下载插件
访问elasticsearch-analysis-pinyin 下载页面,下载与您的Elasticsearch版本相匹配的插件。

步骤2:上传插件
将下载的插件压缩包上传到Elasticsearch的plugins目录。

步骤3:检查插件列表
curl -XGET "http://localhost:9200/_cat/plugins?v"
预期输出:
name        component       version
node-master analysis-pinyin 7.17.6
包含 analysis-pinyin 插件。

步骤4:测试插件
curl -XPOST "http://localhost:9200/_analyze" -H "Content-Type: application/json" -d'
{
  "analyzer": "pinyin",
  "text": "姜军"
}'
预期输出:
{
  "tokens": [
    { "token": "a", "position": 0 },
    { "token": "li", "position": 1 },
    { "token": "ba", "position": 2 },
    { "token": "ba", "position": 3 }
  ]
}

Easy-Es 中使用 pinyin 分词器
确保实体类中正确引用 Analyzer.PINYIN:
@IndexField(
    fieldType = FieldType.TEXT,
    analyzer = Analyzer.PINYIN,
    searchAnalyzer = Analyzer.PINYIN,
    fieldData = true
)
private String name;
3月28

Win11启用Telnet

12:18电脑技术  From: 本站原创
按Win+R键并输入cmd。

右键单击命令提示符并选择以管理员身份运行。

在命令提示符窗口中,键入以下命令并按 Enter:

dism /online /Enable-Feature /FeatureName:TelnetClient
命令提示符将开始启用该功能并显示操作成功完成的消息。

然后telnet,回车

如果需要禁用 Telnet,请键入以下命令并按 Enter:

dism /Online /Disable-Feature /FeatureName:TelnetClient
等待成功消息。

键入 exit 并按 Enter 关闭命令提示符。
3月7

管理是平衡的艺术,也是实践的艺术。

一家公司想要做大事,就必须有一套非常高效的协作机制。

一个组织,成员们能够召之即来、来之能战、战则必胜,其背后必然存在一条核心管理执行原则:

凡事有交代,件件有着落,事事有回音。

组织成员中,每个人都扛着自己的责任往前走,并愿意把后背交给彼此。

那么,作为一个管理者,要如何做到,让团队成员践行这一条核心原则呢? 

一定要理解,并达成共识。

也许你比对手有更多的用户,更好的技术,更多的资本,但是,如果你没有一支有效协作的团队,所有优势都无法发挥作用。

一切都无从谈起。




凡事有交代


什么叫“凡事有交代”?

有次和办公室的同学们开会。

我讲完后说:

你们的责任,就是让我从这一秒钟开始,把这件事给完全忘了。

这就是我对你们的要求。

什么意思?

责任,不是我们一起计划10件事情,然后你去做。这不叫责任。

因为再聪明,想得再全面,也一定至少有20件事,是我们没想到的。

这样的话,我就要时时想,我们忘了什么没有?我们忘了什么没有?

这时,你没有承担起责任。

责任到底是什么?

责任,不是对那些想到的事负责。

责任,是对那些“没想到的事”负责。

一个人最大的能力,就是让人放心。  

不需要你有多大的能力,你需要让我知道,你的能力边界和行动进度。

让老板信任,公司重用,投资人放心的一个最基本品质,是可靠。

你的手机一定要能找到你,切忌不接不回。

你的行为一定要基本稳定,切忌变化多端。

你的承诺一定要次次兑现,切忌大话无为。

可靠是一种“钝品质”,要如鼎一样稳重,需要“看得见,摸得着,信得起”。

任何一件事情,只要被提出来,就永远不能消失。

这件事情的结束方式只能有两种,第一种是被完成,第二种是被发起者取消。

如果一件事情交代下去,没有人问就渐渐消失了,那么组织的协作机制就是失效的。

凡事有交代的本质,就是给任何事情扣上闭环,有开始就必须有结束,避免石沉大海。

你需要理解,生命中的一切事情,本质上都是一个项目。

而项目管理中,第一个关键要素,就是:

循环。

既然是有头有尾的事情,就要:“用循环解决问题”。

循环过程分为5个步骤:

启动、计划、执行、控制、收尾。

1)何谓启动?

这事儿值不值得干?我们要不要干?需要哪些人?需要多少钱?

2)何谓计划?

这事怎么干?投入多少时间?谁负责什么事?什么时间节点完成什么结果?资金怎么分配?资源怎么调配?时间怎么分配?任务怎么分配?

3)何谓执行?

既然分配了,那就按照公司战略完善高效执行下去,不要眼高手低。

4)何谓控制?

谁在负责这件事情?做的进展如何?达成目标了吗?按照进度跟进了吗?

5)何谓收尾?

无论成败与否,我们来复盘一下有什么经验?什么教训?

这5个步骤,构成完整循环,且缺一不可。

凡事有交代的背后,是一组严密执行的步骤。





件件有着落


我们在工作中夸奖一个人,常常会说:

这人靠谱。办事能落地。

人狠话不多,招招见血,刺中项目管理的要害。

什么叫能落地?

在工作中,你会发现有的人聊起事情来,口若悬河,特别有激情,但就是上不了手,纸上谈兵。

做事毫无章法,没有丝毫策略意识。

嘴上挥师百万,实际战场逃兵。

从外部看一件事,和真正上手做一件事,体感是完全不同的。

如果一个创业者不停的说“我”,我想怎么样,我计划怎么样,我打算怎么样,我认为怎么样,我要怎么着,眼里只有“我”的视角,其实非常危险。

因为“想象世界”和“真实用户世界”往往相差千万里。

很多事情你没有干过,只是坐在那评论的时候,你觉得别人这有问题,那有问题,应该这么干,那么干。

但是当你亲自上手的时候,会发现,你在外边观察这个事时,只看到10个点,而实际做起来,可能面临的是100个点。

剩下90个。

你,根本就没有想到过。

对于别人的工作,对于别的行业,不要随意评判对错,随意给批评。

认为我随便做做,都比你做的好。

随便换一个人,都能快速碾压你的业绩。

你要知道,每个看似愚蠢的决定背后,都是无数复杂的妥协和平衡。

每个行业里,真正专业的力量,是外行无法理解的。

在校运会上卖过零食的,总觉得自己洞察零售。

有一两个拿手菜的,总觉得自己可以开餐厅。

看到别人做自媒体,觉得写字,这谁不会?

对于没有亲自俯身经营的事情,要时刻保持谦卑,时刻保持敬畏。

哪怕是一份特别简单的工作,也需要常怀敬畏之心。

因为,实际做起来,永远都会有我们从来没有想到过的情况发生。

那么,在执行目标的时候发现有困难怎么办?

你应该及早意识到这些困难,然后主动去找资源,想办法解决。

这就需要你快速从100个点里,分辨出哪些点是最重要的,我应该从哪个入手,我应该运用哪些资源,我应该如何去做,然后马上做起来。

在组织前进的过程中,有目标,就一定有通往目标路上的障碍。

遇到障碍后,焦虑,是正常的。

但是一个成熟的人,能快速走出焦虑,专注于解决问题的方法。

目标常常是两难的。既要,又要。

这就需要迅速从焦虑中走出来,不是往后退,不是恐惧变化。

而是必须把全部的心思,放在搬走石头,解决问题上。

一件事,在没有做之前,谁也不知道能不能成。

碰到一个新事物或者不懂的问题,怎么办?

先去试。

遇到问题,解决问题。

尝试失败了怎么办?

即使失败了,也尽了最大努力,把所有可以尝试的方法穷尽了一遍。

这就叫做:

件件有着落。




事事有回音 


什么叫事事有回音?

我举个例子。

将军派一个团在凌晨3点前必须攻下某个山头。

在凌晨3点前攻下某个山头,这就是将军给这个团的团长定下的目标。

那你说,对于团长来说,在凌晨3点攻下还是在凌晨5点攻下,有区别吗?

如果是在凌晨5点攻下,那不也算完成了任务吗?反正我把山头攻下来了对吧?

听上去好像没什么毛病。

但是,团长可能不知道的是,将军让他在凌晨3点前攻下,是因为凌晨3点半大部队要通过这个山头。

如果他凌晨3点前攻不下,那大部队就无法通过。

所以,如果团长私自改了目标,凌晨5点才攻下山头,那将军的整个计划就被打乱了。

对于一个组织来说,所有的目标,都是为了更高层面的协作。

一个大目标,是无数个小目标聚合起来的。

而定目标,就是为了形成一个分布式协作网络。

定目标,意味着团队成员把后背交给了彼此。

所以,给每一个人定下目标,这是一个组织能够协作的前提。

如果一个管理者,在布置执行任务的时候,需要时刻来问:

有没有遇见问题?

怎么回事,这么长时间都没给我消息?

现在进度怎么样了?

这时,你没有做到事事有回音。




最后的话


管理是平衡的艺术,也是实践的艺术。

凡事有交代,件件有着落,事事有回音。

每个组织成员都深刻理解、并愿意认真践行这条原则。

团队才会形成一个高效的协作网络。

每个人都扛着自己的责任往前走,并把后背交给彼此。

真正做到召之即来、来之能战、战则必胜

12月20
在使用Vue3、TypeScript和ElementUIPlus构建前端时,遇到上传表单数据为[objectObject]且后端SpringBoot报错的情况。通过排查发现前端代码中的`file`对象需要将`raw`属性值作为上传内容,解决了`MissingServletRequestPartException`。

项目场景:
前端:Vue3 + ts + antdv
后端:springboot


打印的file:
发现file内部还有一个raw属性,我们要上传的是这个raw里面的内容

解决方案:
更改前端代码如下:

const file = uploadFileList.value[i];
    formData2.append('file', toRaw(file.raw));
    formData2.append('parentAdcode', formData.parentAdcode);
    importObjects(formData2).then(res=>{
      this.$message.success('导入成功')
    })
分页: 1/67 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]