计算器
计算器(calculator)几乎是每台操作系统都会预装的工具。看似简单,背后却涉及一套成熟的表达式求值算法,而具体形态又从命令行、桌面到 Web 各有取舍。日常开发中,能熟练用一行命令算清一个表达式、做一次单位换算或进制转换,往往比反复切到鼠标点击 GUI 更高效。本文先聊一聊命令行里最常驻的 bc,再扩展到全平台的开源桌面/Web 计算器,以及支撑它们的表达式求值原理。
计算器(calculator)几乎是每台操作系统都会预装的工具。看似简单,背后却涉及一套成熟的表达式求值算法,而具体形态又从命令行、桌面到 Web 各有取舍。日常开发中,能熟练用一行命令算清一个表达式、做一次单位换算或进制转换,往往比反复切到鼠标点击 GUI 更高效。本文先聊一聊命令行里最常驻的 bc,再扩展到全平台的开源桌面/Web 计算器,以及支撑它们的表达式求值原理。
在使用 Linux 终端(Terminal)时,偶尔会遇到一个让人困惑的现象:输入命令时光标(那个用来标识插入位置的小方块或竖线)突然不见了,但键入的字符仍然能正常显示。这种情况几乎都不是系统故障,而是某个程序退出时没有正确恢复终端状态所导致。本文梳理其成因与多种修复手段。
软件开发与计算机科学教学中,「可视化」是把抽象逻辑转化为可感知图形的有效手段。按照用途,可视化工具大致可分为三类:算法可视化(帮助理解数据结构与算法的执行过程)、调试可视化(帮助分析程序运行状态与调用关系)、数据可视化(用于绘制业务数据、网络拓扑等)。本文按这三类梳理常用工具。
客服系统(Customer Service System)是企业用于接待访客、处理咨询、管理工单与维护客户关系的软件平台。早期它仅指嵌在网页右下角的「在线聊天小窗」,随着业务复杂度上升,逐步演变为涵盖网页、App、微信公众号/小程序、企业微信、QQ、邮件、电话语音等通路的「全渠道(Omnichannel)联络中心」。
Liquid 是一门开源的模板语言(template language),由 Shopify 创造并用 Ruby 实现。它是 Shopify 主题(theme)的骨骼,负责把店铺后台的动态内容渲染成浏览器看到的 HTML。自 2006 年起,Liquid 就在 Shopify 的生产环境中使用,如今已被大量 Web 应用所采纳,其中最知名的莫过于 GitHub Pages 默认的静态站点生成器 Jekyll。
任何一个复杂系统的内存分配与释放策略,其最优解几乎都不是依赖某一种「通用」的分配器,而是按照对象的特性进行分类管理:把不同生命期、不同大小、不同访问模式的对象,交给与之匹配的专用机制来处理。这种「分而治之」的思路贯穿了从内核到应用层的所有高性能内存子系统。