可穿戴式设备的定义和应用
这篇讲的是可穿戴式设备究竟是什么,以及它如何区别于我们熟悉的手机等设备。文章从“可穿戴设备之父”Steve Mann在1998年提出的权威定义出发,系统拆解了这类设备的核心特征。 核心在于,可穿戴设备是“持续运行和交互的计算机”。这具体体现在三个基本操作模式上:它不像手机需要解锁才能用,而是“一直在线”的(持续性);它可以在你跑步、工作时同步增强你的能力(增强);它更像身体装备,能过滤外界信息并保护隐私(调解)。 文章进一步从人机协同的角度,归纳了六个基本属性:它不独占你的注意力、不限制你的行动,却能被你随时感知和控制。这种设计让它能关注环境、并作为与他人交流的媒介。 作者认为,这种人机融合的设备将深刻改变生活。文中列举了早期的几个应用场景:从第一视角摄影、增强现实显示,到为弱视人群辅助视觉,以及至关重要的运动健康监测。这些功能预示了它与火药发明相提并论的变革潜力。 整篇文章篇幅不长,却清晰地勾勒出了可穿戴设备的概念骨架与发展脉络,帮助读者建立起对这个新兴领域的基础认知。
在 Mac OS X 终端里使用 Solarized 配色方案
作者从自己的使用体验出发,发现长期使用终端后眼睛疲劳,于是尝试了广受推荐的 Solarized 配色方案。这篇文章详细分享了在 Mac OS X 上配置该方案的全过程。 Solarized 本身是一个覆盖广泛的配色项目,支持多种操作系统、终端和编辑器。作者指出,在 Mac 上要获得一致的视觉体验,至少需要对终端、Vim 和 ls 命令这三个环节进行配置。文章提供了具体的步骤:通过双击文件将 Dark/Light 主题导入 Terminal 或 iTerm2;将 Solarized 的 vim 配色文件复制到指定目录并在 .vimrc 中启用;对于不显示高亮的 ls 命令,则通过在 .bash_profile 中设置 CLICOLOR=1 来解决。 最终,通过这一系列设置,能够实现在终端、代码编辑和文件列表查看中保持统一的配色风格,提升长时间工作时的视觉舒适度。
如何的退出无响应的 SSH 连接
这篇讲的是SSH连接卡死时的优雅退出方法。作者从日常工作中遇到的实际烦恼出发——离开电脑后,未退出的SSH会话常常悬在那里,既无法操作也无法中断,以往只能粗暴地关闭终端或手动寻找进程并终止。尤其对于没有图形界面的环境,这种重复性操作令人十分头疼。 文章的核心在于一个简单却鲜为人知的技巧:在无响应的SSH会话中,输入波浪符加句点(`~.`)即可立即断开连接。作者通过查阅`man ssh`手册确认了这一“转义字符”的功能,它被列为支持的断开连接命令。这个发现解决了长期困扰他的问题,提供了一种无需依赖窗口关闭或额外终端来杀进程的、直接且“优雅”的解决方案。 这个方法虽然基础,但对于经常使用SSH的开发者和运维人员来说非常实用,能有效节省时间并提升终端操作体验。
那些被大佬带进沟里的名言
这篇探讨的是技术圈里那些被“大佬”名言带偏的经典案例。文章以轻松又不失犀利的口吻,剖析了诸如“注重用户体验”、“小步快跑”、“不断试错”、“做轻做小”和“接地气”等流行理念,如何因片面理解而沦为产品开发中的陷阱。 作者用“旋风将军”攻城却不守的比喻,戳破了“小步快跑”只跑不顾运营的幻想;以《三体》的“黑暗森林法则”提醒,“试错”并非毫无章法的冒险,首战即败的代价往往致命。文章指出,这些口号被剥离了关键前提——小步快跑需兼顾运营,试错需谨慎开局,做轻只是切入手段,而“接地气”更不等于恶俗。 最终,作者将讨论引向更深层的认知:产品设计的内核并非优雅的界面,而是切实的价值创造。真正的成功,始于创意,成于持续、深度的运营设计。那些起势汹涌却无疾而终的产品,大多败在了对“运营”这一脏活累活的轻视上。
Linux内核代码中的脏话统计
这篇讲的是作者从一个已停更的“the linux kernel fuck count”项目获得灵感,对Linux内核的C、H及汇编源代码进行了一次系统的脏话统计分析。作者按版本号,分别从脏话的绝对数量和代码行的脏话密度两个维度绘制了图表。 数据呈现了一个有趣的趋势:从2.4版本开始,脏话的绝对数量显著攀升。然而,考虑到同期内核代码总量也在激增,折算下来,平均每行代码的“脏话密度”反而是在下降的。文章坦诚地分享了统计方法的局限,比如会将词中包含的词也计入,以及受FreeBSD正则引擎内存泄漏的影响未能优化。 作者最终开源了统计脚本,但也自嘲其代码质量混乱。这本质上是一次用独特视角审视开源社区文化的趣味实践,既看到了开发者情绪的外露,也反映了代码库膨胀带来的稀释效应。
用QQ邮箱发一封求职信
这篇讲的是最近关于“用QQ邮箱发求职信是否合适”的热议。作者从这场争论出发,没有陷入情绪化的站队,而是冷静地剖析了“QQ邮箱”在求职场景下的多面性。 文章核心观点是:绝大多数情况下,用QQ邮箱发求职信并无不妥,其负面影响充其量只有20%,关键还是简历质量。但在一些特定场景下,它确实可能带来减分。比如,在大公司的商务职位或科技媒体编辑岗位,使用Gmail等更具国际感和商务气质的邮箱,可能在第一印象上更得体。作者甚至指出,在产品经理等技术岗位,Gmail优雅的设计语言本身就能传递一种对产品细节的敏感度。这些判断源于对HR筛选习惯的观察(比如数据发现“QQ邮箱”是简历未通过的强特征之一)和对不同品牌气质的理解。 作者也提醒,这场争论中许多“地图炮”式的互怼是不理性的。无论是批评QQ邮箱还是捍卫它,过早的愤怒往往会遮蔽对复杂场景的认知。就像文章最后举的支付宝支付密码的例子,很多看似“荒谬”的设计背后,都有其特定的用户逻辑和妥协。因此,他建议不必对号入座,了解这个世界的复杂性,比简单地评判对错更有价值。
敏捷就是“团队快乐”
这篇讲的是敏捷的核心在于“团队状态”,而非机械执行流程。文章直面传统职能组织中“各扫门前雪”的协作困境,指出目标冲突导致相互推诿的痛点。 作者将真正的敏捷拆解为四个支柱:一是“团结一致”,团队共享同一目标,必要时主动补位,比如产品与技术共同细化需求、开发介入测试;二是“纪律严明”,角色分工、每日站会、可视化工具是为协作服务的清晰约束,而非推责的规矩;三是“快速反应”,摒弃“憋大招”的完美主义,通过小步快跑的迭代(如两周一个版本)尽早交付价值、获取用户反馈;四是“乐在其中”,让成员在消灭任务卡片、并肩作战的即时反馈中获得成就感与快乐。 文章最后强调,快乐不是结果,而是敏捷实践的驱动力。高效协作与积极心态形成的良性循环,才是团队能持续适应变化、交付价值的根本。
人人都用 Retina 屏幕的 MacBook Pro 笔记本电脑
这篇讲的是作者从个人使用 Retina 屏 MacBook Pro 的体验出发,强烈推荐这款笔记本成为每个人的首选。他认为,Retina 屏幕的高分辨率是核心优势——其像素数量是普通屏幕的 4 倍,通过将 12px 字体放大到 24px 并后退观看的比喻,直观展示了字体渲染的细腻效果。同时,作者强调 Mac OS X 的字体渲染技术天生适合高分辨率,低分辨率下视觉效果甚至不如 Windows 95,因此坚决反对购买非 Retina 屏幕的机型。 除了屏幕,作者将 SSD 硬盘视为性能关键,指出电脑速度的瓶颈早已是硬盘而非 CPU,批评 PC 笔记本常搭载慢速机械硬盘是“过时的骗人货”。在体验上,MacBook Pro 的即点即用、无风扇噪音和轻量设计,与 PC 笔记本的唤醒延迟和松散感形成鲜明对比。设计细节上,他推崇 MacBook Pro 的对称美学和完整质感,认为这超越了 PC 的拼凑感。 软件层面,作者欣赏 Mac OS X 的朴素界面,并指出 MacBook Pro 可用于 iOS 和 Android 开发,提供免费的 Xcode 环境。最后,他以成本效益论证:一台万元 MacBook Pro 相比占地费噪的台式机更具性价比,并预测苹果笔记本将持续领先多年。文章的核心启发是,选择笔记本时应优先考虑屏幕、SSD 和整体设计,而非盲目追求硬件参数。
程序员眼里IE浏览器是什么样的
这篇讲的是程序员如何用幽默解构曾经的浏览器霸主IE。文章没有做严肃的技术评测,而是收集了一系列广为流传的搞笑图片,从“反射弧有点长”到“如何区分HTML与HTML5”,再到不同浏览器的用户画像,用一个个生动的梗图勾勒出IE在程序员心中的形象——反应慢、兼容性差、总像没睡醒的“学渣”。 这些看似戏谑的调侃,其实精准地指向了IE衰落的核心原因:在Web标准快速演进的时代,它固步自封,更新迟缓。文章以轻松的方式提醒我们,这些笑话不仅是吐槽,更反映了开发者们对一个开放、标准、高性能的Web环境的集体追求。
国际商品编码EAN-13介绍
这篇讲的是我们身边无处不在的商品条形码背后的技术标准——EAN-13。文章深入剖析了这个全球通用编码的内部结构。一个标准的EAN-13码由13位数字构成,包含了国家代码、厂商代码、产品代码和检查码。其巧妙之处在于,为了便于机器可靠读取,它并非简单对应,而是有一套精密的编码规则。 具体来说,最左边的第一位数字作为“导入值”,本身不印出条纹,但它决定了紧随其后的六位数字(左资料码)采用A类还是B类的编码模式。左、右资料码之间还通过“中线”这个特殊标识分隔开。右资料码则统一采用C类编码。文章详细列举了A、B、C三类编码各自的逻辑值转换规则,这些由细黑线和细白线组合成的不同图案,最终构成了扫描枪能够精准识别的条形码。 这种多层级、有变化的编码设计,确保了即使从左到右扫描,机器也能准确无误地读取信息,理解了这套规则,就明白了超市扫码器“嘀”一声背后运行的逻辑。
十五个只有程序员会乐的事情
这篇合集收集了十五幅只有程序员才会会心一笑的漫画,用幽默的方式刻画了程序员独有的工作场景与日常体验。从标志性的“大水杯”、项目开始与结束时的鲜明对比,到用编程语言改写爱情故事,作者敏锐地捕捉到了那些潜藏在代码、调试与产品迭代背后的微妙情绪。 这些段子的笑点往往建立在共同的技术语境之上——无论是浏览器兼容性的困扰、项目状态在“开始”与“完成”之间的漫长徘徊,还是将祈求服务器稳定的姿势变成一种仪式。它们不仅描绘了熬夜调试的疲惫、面对需求变更的无奈,也轻松地调侃了程序员特有的表达方式与生活痕迹,比如用二进制纹身。 文章没有深奥的分析,而是通过这种轻松自嘲的漫画集,为技术读者提供了一面共鸣的镜子,也为非技术读者打开了一扇理解程序员幽默感的窗户。它本质上是一次对程序员文化的趣味性扫描,让那些淹没在逻辑与字符中的情感变得可见而可爱。
为什么优秀的程序员既懒又笨
这篇讲的是一个反直觉却真实的现象:那些被视为优秀的程序员,身上往往同时具备“懒”和“笨”的特质。 作者从观察出发,指出“懒惰”并非贬义——优秀的程序员会为了一劳永逸地摆脱重复劳动,主动编写工具和脚本,从而在客观上提升了代码的可维护性和产品质量。而“笨”则是一种宝贵的思维品质,它让程序员保持谦逊、持续学习,并且像孩子一样提出最基础的问题,避免因自以为是而陷入思维定式。文章中那个排查logo显示问题的虚拟对话很有意思,它生动地说明,只有放下“聪明人”的预设,用最朴素的“傻办法”刨根问底,才能触及真正简单却容易被忽视的根源。 作者想传达的是,这种“懒”驱动效率提升,“笨”保障问题定位的思维方式,是实用主义程序员的核心素养之一。它提醒我们,有时放下精妙的预设,回归简单质朴的思考,恰恰是解决复杂技术问题的捷径。
利用三轴加速器的计步测算方法
这篇讲的是如何让没有GPS的设备也能准确计步。目前大部分手机计步都依赖GPS,但在室内或无信号场景下就失灵了。作者提出直接利用设备内置的三轴加速器,通过分析x、y、z三轴的加速度数据来捕捉行走特征。 人的步行会在垂直和前进方向产生周期性加速度变化,轨迹近似正弦曲线。算法的核心在于对这条曲线进行峰值检测——当检测到加速度方向由正转负,即经过一个波峰时,就判定为一步。为了应对设备在手中或口袋里方向不定的问题,算法先计算三轴加速度的合矢量长度,确保无论设备怎么放都能得到稳定的曲线。 另一个关键是过滤干扰,比如手抖或故意摇晃设备产生的无效信号。文章给出了两个巧妙的过滤机制:一是设置最小步频阈值,人体最快步行频率约5Hz,间隔小于0.2秒的信号会被舍弃;二是设定加速度幅度阈值,过小的波动不计入有效步伐。 除了计步,这个基于加速度的方案还能扩展成测距、测速工具,甚至用于检测老人摔倒。它为移动健康监测提供了更灵活、不受环境限制的技术基础。
程序员最怕的事
这篇文章汇总了程序员社区里流传最广的五大恐惧,数据源自 Stack Overflow、Quora 等平台上相关帖子的投票结果。它并非严肃的技术探讨,而是一次有趣的技术人“心理体检”。 排名从低到高,恐惧依次是:与不称职的上级或同事共事;被迫学习或使用自己讨厌的技术(比如有人“怕用 COBOL”);不再热爱编程这份工作;失业风险(包括被外包、技术平台封闭甚至身体伤病);而高居榜首、最普遍的恐惧是“做砸事情”——具体表现为害怕代码里的 Bug。从“周五晚上发现无法编译”到“担心 Bug 造成经济损失或物理伤害”,这种对交付质量的敬畏与焦虑,几乎伴随每一位开发者的日常。 这篇文章的价值在于,它揭示了技术光环之下程序员真实的情感与压力。它可能让你会心一笑,找到共鸣;也可能提醒团队管理者,除了技术能力,程序员更需要一个健康的协作环境和工作热情。你的恐惧上榜了吗?
浅析十三种常用的数据挖掘的技术
这篇讲的是数据挖掘领域里十三种核心的技术方法,作者没有停留在抽象概念,而是系统地梳理了从统计、关联规则到神经网络、模糊集等每种技术的底层逻辑。比如,统计技术的核心是先假设一个概率模型再进行挖掘;而关联规则旨在发现变量间隐藏的规律性,其生成的规则带有可信度。 文章特别适合想快速建立技术全景图的读者。它清晰区分了各类技术的特点:决策树用于展示条件规则;神经网络通过输入层、隐含层和输出层的复杂连接来建模;粗糙集处理不精确的数据分类;差别分析则专注于发现异常模式。这些技术并非孤立存在,它们共同支撑起从分类预测、聚类分析到异常检测等数据挖掘的核心任务。 对于技术实践者而言,这篇文章的价值在于将众多方法置于统一框架下进行说明,帮助读者理解每种技术解决哪类问题、其基本假设是什么。结尾也点明了数据挖掘作为一门交叉学科,融合了机器学习、统计学、数据库等多个领域的精华,其发展最终旨在将海量数据转化为可用知识。
各就各位,各司其职
这篇讲的是团队中战略与执行如何配合的真实案例。作者从与CEO John和行政负责人Grace的对话切入,呈现了一个看似简单的outing决策背后的复杂落地过程。 John作为领导者,从体验和团队士气出发,直接指出台湾是绝佳选择,忽略了一切执行细节。而Grace作为执行者,则清晰地列出了针对100多人团队的户籍差异、复杂的商务签证流程以及漫长的时间成本。两人的视角截然不同,但又缺一不可——没有John的远见,团队可能永远走不出本地;没有Grace对细节的把握,目标永远只能是纸上谈兵。 文章的核心观点正在于此:一个目标的实现,既需要有人“抬头看路”指明方向,也需要有人“低头拉车”解决具体问题。两者相互体谅、各司其职,才能将看似不可能的任务变为现实。这不仅是项目管理的关键,也是任何高效团队的运作基石。
说说会话串号
这篇讲的是大型网站(以淘宝为例)中一种令人头疼的故障——“会话串号”,即用户意外登录到他人账号的现象。作者基于亲身的运维经历,剖析了几起真实案例。 文章首先区分了两种串号场景:一种是系统BUG导致的,用户不仅能看到别人页面,还能进行操作;另一种是缓存导致的,用户只能看到别人的页面但无法操作。重点在于前两种技术性串号:第一起源于Jboss的Tomcat在解析Request参数时存在BUG,可能读取到脏数据导致登录串号;第二起则是店铺系统在静态化改造时,缓存服务器错误地缓存了包含Set-Cookie的HTTP头,导致用户获得了一个他人的SessionID。 排查这类问题周期很长,因为难以重现且不易定位根因。为此,文章提出了一种主动防御思路:在Cookie中增加一个签名值,并在服务端会话框架中校验该签名。一旦检测到客户端与服务端的签名不一致,就清空会话并强制用户重新登录。这套机制旨在快速发现并阻断串号,将被动排查转为主动防御。
开发者调试工具Chrome Workspace
这篇讲的是Chrome开发者工具中一个能直接提升前端调试效率的内置功能:Workspace。 它允许开发者在DevTools里直接修改JS和CSS代码,并且改动会实时、自动地保存回本地文件。这省去了以往“在工具中调试确认效果,再切回编辑器手动同步修改”的重复步骤。过去实现类似自动保存需要依赖第三方工具(如autosave)并手动启动本地服务,现在Chrome正式版已原生支持,流程大大简化。 文章详细说明了启用方法:对于普通Chrome用户,需先在`chrome://flags/`中启用开发者工具实验选项,重启DevTools后在设置的“Experiments”中开启“File system folders in Sources Panel”。出于安全考虑,还需在目标项目根目录下创建一个名为`.allow-devtools-edit`的空文件(文中提供了Windows和Mac的命令行创建方式),然后在Workspace中添加该目录即可开始使用。作者也提醒,若资源通过URL加载,需使用Mappings设置映射,并特别注意路径结尾不要加反斜杠。 最后文章指出,尽管Workspace在调试阶段能有效提效,但其目前并不支持SCSS、LESS等预处理器文件的编辑,这是一个尚待完善的限制。
使用xctool自动打包,测试xcode项目
这篇讲的是如何用Facebook开源的xctool命令行工具,来简化和优化Xcode项目的构建与测试流程。 作者开篇直接点明,xctool是用来替代苹果官方xcodebuild工具的利器。它的核心优势很清晰:一方面,它能像Xcode一样执行测试,但输出结果是结构化的,更适合自动化脚本解析;另一方面,它的编译输出带彩色高亮,可读性远超传统工具,能让你更快定位到构建错误。 文章随后给出了最实用的部分:通过`brew install xctool`即可轻松安装。而日常使用只需掌握三个核心命令——`archive`打包、`build`构建、`test`测试。每个命令都附带了明确的参数示例,指向工作区(.xcworkspace)和计划(Scheme),照着替换就能立即上手。 整体来看,这篇文章为iOS开发者提供了一个清晰的“工具升级”路径。它没有停留在功能介绍,而是快速引导你完成从安装到基本使用的全过程,有效降低了尝试新技术工具的门槛。
如何通过修改注册表来添加删除Windows的系统服务
这篇讲的是如何通过修改注册表来管理Windows系统服务,特别是在默认工具不灵活时提供更底层的控制方法。在系统维护中,清理无用服务或添加自定义服务是常见需求,但直接操作注册表需要谨慎,文章详细拆解了关键步骤。 删除服务部分介绍了三种实用方法:使用sc命令行工具(如“sc delete KSD2Service”),直接编辑注册表删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下的键值,以及处理特殊情况——例如服务由系统进程保护时,需先结束进程或进入安全模式再操作。这些方法覆盖了从简单命令到深度清理的不同场景。 添加服务部分则深入讲解如何通过注册表创建新服务项,并设置必要的键值:DisplayName(服务名称)、ImagePath(程序路径)、Start(启动类型,值2为自动,3为手动,4为禁止)等。文章以添加QQ程序为服务为例,展示了如何逐步配置并验证效果。 通过这些方法,用户可以灵活地控制服务启动状态和系统资源,解决服务冲突或优化性能。文章提供了具体技术细节和注意事项,避免常见误操作,适合需要精细管理Windows环境的系统管理员参考。