Skip to content

从痛点到解决方案:PLC数据格式转换调试工具的诞生

工具
PLC

这篇文章记录了一个PLC数据格式转换调试工具的完整开发历程。作为工控工程师,作者深受各种PLC品牌数据格式差异之苦——西门子的CDAB字节序、欧姆龙的BADC排列、各种BCD/DEC编码格式,每次调试都需要翻阅文档、编写测试代码、反复试错。 受到"暴力美学"思维启发,作者决定开发一个纯前端工具,通过穷举所有可能的组合(字节序×编码格式×数据类型),让用户一次性看到所有转换结果,从中找到正确答案。工具采用HTML+JavaScript实现,无需后端依赖,支持详细的计算过程展示和一键复制功能。

文章详细分析了目标用户群体(自动化工程师、嵌入式开发者、系统集成商),通过西门子S7-1200、欧姆龙CP1E等实际案例展示工具价值,并分享了开发过程中的技术选型考虑和用户体验设计思路。最终选择开源,希望通过集体智慧让更多工程师受益,让PLC数据转换不再是技术噩梦。

如何成为黑客

转载
思考

在这篇文章中,笔者从《How To Become A Hacker》一文出发,系统地梳理了黑客文化的核心精神、态度与必备技能。我深入探讨了“黑客”与“破坏者(Cracker)”的根本区别,强调黑客并非违法分子,而是一群追求自由、分享与优雅解决问题的人。

为了成为真正的黑客,笔者总结了几条明确的路径:学习编程语言(如Python、C、LISP等),掌握操作系统(尤其是Linux和Unix)、了解互联网的底层原理、熟练使用英语,以及参与自由软件项目。过程中还特别强调了要具备“懒惰、急躁、傲慢”这三种略带反讽却本质积极的黑客美德。

这不仅是一篇技能指南,更是一种价值观的宣言。正如文中所说:“黑客精神,是在智识与创造力之上,对世界不断重构的冲动。”成为黑客,从模仿与学习开始,更重要的是不断探索、思考与分享。

提问的智慧

转载
思考

本文章旨在教读者如何有效、聪明地提出技术问题,以提高获得有用答案的概率。文章强调在提问前应尽可能自行搜索、阅读文档和尝试解决问题,并在提问时表达清晰、尊重他人、避免含糊和懒惰。作者还指出应在合适的论坛提问、使用明确的标题、准确描述问题经过和现象,并在问题解决后分享经验。
本文不仅适用于技术社区,也为所有希望提高提问效率的人提供了实用的建议。

软件工程师简历撰写的实用指南

面试技巧
转载

这篇指南为软件工程师求职提供了简明实用的简历与面试建议。
简历方面,推荐使用标准格式(Word/Docs 编辑,PDF 提交)、常用字体、窄边距排版,确保 ATS 可识别。内容应聚焦于量化成果、核心技能和关键词,简历长度控制在一页。

结构建议包括:专业摘要、工作经历、教育背景、项目经验和奖项,强调条理清晰、结果导向。

行为面试部分介绍了 STAR 答题法(情境-任务-行动-结果)与高频题目,鼓励结合实际经历展现沟通、合作与解决问题能力。

文章还强调简洁有力的自我介绍(电梯游说)和结束提问的重要性,并推荐使用简历优化工具进行自检。

整体目标是:让简历易读、内容精准,展现候选人价值,提升进入大厂面试和拿 offer 的几率。

tauri 中创建和管理全局 emit 任务

编程
Blog
原创
tauri
rust
argus
思考
tokio

在 Tauri 中,前端通过 listen API 来监听特定事件,而后端则通过 AppHandle 中的 emit 方法触发这些事件。然而,由于 AppHandle 的生命周期问题,它不能作为全局对象存储,这就引发了一个问题:如何在没有前端 command 触发的情况下,从后端触发全局的 emit

为了解决这个问题,笔者提出了一种通过创建异步任务管理器的方法。通过使用 Tokio 创建一个后台线程来监听 mpsc 通道,后端可以通过该通道发送全局错误消息。当错误发生时,消息通过通道发送到前端,前端通过 emit API 处理并展示这些信息。此方案避免了 AppHandle 的生命周期问题,并保证了全局事件的触发机制。

VitePress 笔记使用

学习
VitePress
Blog
原创
Markdown

本文介绍了如何使用 vitepress

Vue3新属性 — css中使用v-bind(v-bind in css)

编程
学习
vue
Blog
原创

这篇文章介绍了在 Vue3 中如何使用 v-bind() 来动态绑定 CSS 样式,尤其是在 CSS、LESS 和 SCSS 文件中的应用。

关键内容总结: 背景:文章解释了 Vue3 中 v-bind() 在样式绑定中的新用法,展示了在不同样式表语言(CSS、LESS、SCSS)中的常见应用场景。 实际示例: CSS:展示了通过 v-bind() 绑定直接使用的值、拼接值、对象调用和组合使用四种方式。 LESS:与 CSS 类似,使用变量和 v-bind() 绑定数据,但在 LESS 中出现了拼接使用的问题。 问题分析: 拼接使用问题:在 LESS 中,某些拼接方式无法正常工作,导致变量无法正确转换为带单位的值,甚至会导致错误。 错误提示:解释了因 LESS 在拼接操作时报错,导致绑定失败的问题。

中西文混排时汉字与拉丁字母之间差异

编程
学习
设计
Blog
原创

这篇文章讨论了中英文混排时,是否应在汉字与拉丁字母之间加入空格的争议。研究和实践表明,虽然专业排版软件如Adobe InDesign通常会自动调整汉字与西文之间的间距,但许多普通用户常常手动插入半角空格以保证文本的可读性和美观。文章介绍了“空格派”在排版中的一些习惯,阐述了何时应该加空格、何时不加空格,并引用了刘昕等人关于中英文混排的标准,最后强调了空格的使用对提高文本阅读体验的重要性。

TypeScript 应该被放弃吗

编程
思考
TypeScript
Blog
原创

文章讨论了关于是否放弃 TypeScript 的问题,尤其是在一些大牛和社区项目的选择上。重点聚焦于两篇文章的观点:

Turbo 8 放弃 TypeScript:作者认为 TypeScript 的类型检查反而增加了开发中的负担,并且声明类型复杂化代码,减少了开发效率。这个观点在 Reddit 和知乎引发了激烈讨论,部分评论指出 Turbo 8 并不具备广泛影响力,且作者习惯发表反向意见。

TypeScript 的额外成本:第二篇文章提到,在某些场景下,TypeScript 的类型体操带来不必要的复杂度,尤其是对于小型项目,编写精确的类型定义可能比核心逻辑代码更为冗长。然而,TypeScript 相比于 JavaScript 在维护性和可扩展性上具有优势,尤其是对于框架和类库的开发者而言,尽管带来一些额外的维护成本。

总体来看,放弃 TypeScript 的选择多见于小型或开源项目的维护者,而对于大多数开发者来说,TypeScript 提供的类型系统和可维护性仍然是更受欢迎的选择。

Vue还是React?

编程
思考
vue
React
Blog
原创

这篇文章探讨了 Vue、React 和 Next.js 之间的选择,并深入分析了 React 的一些优缺点。作者指出,虽然 Vue 在国内市场占据主导地位,React 在国外仍然保持强大的活力。但与此同时,React 面临不少批评,特别是其逐渐显现的技术债务和性能问题。文章引用了一些反对 React 的观点,强调 React 已显老化,且与其他框架相比,存在着难以兼容和过度依赖自定义模块的问题。同时,文章还提到其他框架如 Svelte 的优越性,认为它能提供类似 React 的功能,但更加简洁和高效。

如果你对前端框架的选择和 React 未来的方向感兴趣,这篇文章将为你提供一些新的视角,帮助你做出更明智的决策。

共 17 条数据
  • 1
  • 2

本站除转载文章或特殊说明外,均遵守 CC BY-SA 4.0 协议发布