IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

最新文章

采集自各技术站点的近期文章。

IT 数据库/ 2014-03-19 22:47:55 / 累计浏览 4,598

undo异常总结和恢复思路

这篇讲的是Oracle数据库UNDO表空间故障的实战总结。作者从一线工作出发,集中汇总了如ORA-00704(bootstrap process failure)、ORA-00600[4194]、ORA-00600[kcfrbd_3]等一系列让很多DBA头疼的UNDO相关报错。 文章的核心价值在于其系统性。它不仅罗列了千奇百怪的错误现象,更关键的是揭示了背后的常见根源:大多数UNDO异常并非文件本身损坏,而是因为Redo日志未被正常前滚,导致回滚段状态异常,最终阻碍数据库打开。 针对这类问题,作者提供了一套清晰的渐进式恢复思路:从尝试修改UNDO管理方式(M MANUAL)、设置特定事件(10513),到逐步使用参数屏蔽问题回滚段,最后才考虑使用bbed或dul等底层工具。这个思路为遇到类似困境的DBA指明了从软到硬、风险递增的排查路径。 当然,作者也坦诚地指出数据库恢复千变万化,无法照搬,并提供了进一步获取专业技术支持的途径。

本机暂存
IT 后端/ 2014-03-19 22:44:47 / 累计浏览 4,026

怎样用core文件调试你的linux程序?

这篇讲的是如何配置Linux系统,让它能在程序异常崩溃时自动生成核心转储(core dump)文件,从而方便你找出程序崩溃的具体原因。 作者从默认Linux禁止生成core文件这个常见限制出发,一步步演示了解锁方法。核心是使用`ulimit -c unlimited`命令,但文章也特别指出了它的临时性——设置仅对当前会话有效,重启或重登就会失效。如果想要更持久的配置,可以修改`/etc/profile`,不过作者也留下了思考:为什么不推荐这样做呢? 更深入的配置在于控制core文件“生在哪里”和“叫什么名字”。文章详细讲解了通过编辑`/etc/sysctl.conf`文件,设置`kernel.core_pattern`参数来实现。例如,将核心文件统一生成到`/tmp`目录,并使用包含程序名、进程ID、信号值等信息的规则来命名,这对于同时调试多个程序非常方便。 最后,文章点明了核心文件的归宿:使用强大的gdb调试器载入这个文件,就能回溯程序崩溃现场,定位问题代码。整个流程非常实用,是每个Linux开发者都应该掌握的调试技巧。

本机暂存
IT 前端/ 2014-03-19 22:42:44 / 累计浏览 3,839

Beforeunload打点丢失原因分析及解决方案

这篇技术文章由1688的朱铁根和胡大军撰写,他们从淘宝团队早年发现的“页面跳转前发送的打点请求丢失”现象切入,深入剖析了这一前端数据采集中的经典痛点。 作者指出,问题核心在于浏览器页面卸载机制与网络请求时序的冲突:当页面跳转指令发出后,浏览器会迅速销毁当前页面的所有对象,包括用于发送打点请求的Image对象。如果此时打点服务器尚未完成响应,该HTTP请求就会被强制终止,导致数据丢失。 为解决这一矛盾,文章并未建议以牺牲用户体验(如延迟页面响应)为代价,而是巧妙地利用了`window.name`属性的特性。在页面卸载前,将打点数据临时附加到`window.name`中;页面刷新加载后,新页面立即读取并发出这个积攒的打点请求。该方案有效规避了`window.name`在页面刷新后依然保留的特性,同时解决了`cookie`或`localStorage`存在的跨域限制问题。 实测数据显示,该方案效果显著,在Chrome浏览器中打点回收率平均提升了约13%,在各版本IE浏览器上也取得了稳定的提升,为解决此类前端数据采集问题提供了一种可靠且兼容性良好的工程思路。

本机暂存
IT 后端/ 2014-03-19 22:40:30 / 累计浏览 4,464

域名DNS相关术语

这篇讲的是域名与DNS世界里那些让人头大的术语。作者把 Registrant、Registrar、Registry 和 Registry Operator 这四个核心角色及其相互关系梳理得很清楚:一个是所有者(注册人),一个是代理服务商(注册商),一个是权威数据库(注册局),还有一个是运营方(注册局运营商)。这个链条一明确,很多配置和管理上的困惑就能迎刃而解。 文章接着把目光投向了域名层级本身,详细拆解了顶级域名(TLD)这个概念。它特别对比了通用顶级域名(如.com)和国家或地区顶级域名(如.cn)的根本区别:前者由 ICANN 全球协调,后者则与具体国家或地区的法律和管理体系紧密绑定。 读下来,感觉像是跟着一张清晰的架构图,走了一遍域名系统的基本骨架。对于需要与海外服务商打交道,或者想弄明白“.com”和“.cn”背后管理逻辑不同的技术人来说,这篇文章提供的准确定义和对比,是厘清思路的好帮手。

本机暂存
IT 前端/ 2014-03-19 22:39:44 / 累计浏览 3,547

让前端工作更快、更智能:利用StaticPage自动化工作流

前端开发者常常面临静态页面开发琐碎重复的问题——从新建项目、复制模板,到压缩代码、打包上传,每一步都耗费精力。这篇讲的是作者如何通过一套名为StaticPage的自定义Grunt工作流,将静态页开发变得更快、更智能。 作者从自身在UX部门处理大量活动页、专题页的场景出发,对比了传统手动操作的繁琐流程(反复复制粘贴、手动压缩、FTP上传等)与使用自动化工具后的差异。StaticPage是基于Grunt配置的一套轻量级方案,专为解决静态页的“轻量”需求设计——它避免了如Yeoman等大型脚手架可能带来的冗余,同时提供了Sass编译、CSS/JS自动压缩、文件变化监听、一键打包zip及FTP上传等实用功能。 文章详细演示了从克隆项目模板、安装依赖到通过`grunt watch`实现编码时实时压缩,再到用`grunt bundle`生成带时间戳的压缩包并上传的全流程。作者强调,这类工具的核心价值在于“简、快、智”:结构清晰,跳过重复配置,让开发者能更专注于核心编码与问题解决。这套工作流尤其适合需要快速迭代、频繁交付静态页面的前端开发场景,通过将机械操作自动化,显著提升了工作效率与交付体验。

本机暂存
IT 前端/ 2014-03-19 22:33:31 / 累计浏览 6,637

使用CSS3开启GPU硬件加速提升网站动画渲染性能

这篇讲的是作者在打造个人网站时,为首页的鼠标跟随动画遇到的性能坑,尤其是Chrome浏览器下的卡顿问题。 作者使用了多张大尺寸半透明PNG图片来制作空间透视效果,动画本身逻辑不复杂,但在Chrome中帧率只有30fps左右,渲染非常吃力。通过Chrome DevTools分析,发现主要瓶颈是浏览器在“painting”(绘制)阶段耗时过长。根源在于Chrome对大量大尺寸PNG图片的渲染存在长期未完美修复的性能缺陷。 尝试了requestAnimationFrame等多种前端优化手段均无效后,作者找到了一个巧妙的“小hack”:为动画元素添加CSS3属性 `-webkit-transform: translate3d(0,0,0)`。这个本用于3D变换的声明,在设置为0后并未开启3D效果,却意外激活了GPU硬件加速,将渲染工作从CPU转移至GPU。 效果立竿见影,开启后动画帧率瞬间提升至55fps以上,变得极为流畅。文章最后也提供了适用于所有浏览器的通用写法。这个案例说明,有时解决性能问题的关键,可能在于理解浏览器底层的渲染机制,并善用看似无关的特性来“曲线救国”。

本机暂存
IT 前端/ 2014-03-19 22:31:40 / 累计浏览 1,722

人人网首页拖拽上传详解(HTML5 Drag&Drop、FileReader API、formdata)

这篇讲的是一个人人网早在2011年就上线的前端功能——首页拖拽上传,作者从这个实际案例出发,详细拆解了背后的实现技术。当时这个功能不仅是为了提升用户体验,也承载着向用户推广标准浏览器、逐步淘汰IE的期望。 文章核心围绕着三个HTML5关键API展开:首先是Drag&Drop事件机制,用于监听用户将文件拖入、拖离页面的行为;其次是File API中的FileList和FileReader,它们负责获取被拖拽文件的列表并读取其内容;最后是基于XMLHttpRequest Level 2的FormData对象,它能像表单一样封装文件数据,从而实现通过AJAX直接向服务器发送二进制文件流。 作者没有停留在理论介绍,而是直接给出了关键部分的代码示例,比如如何监听`dragenter`、`dragover`、`drop`等事件,并特别强调了清除`dragover`默认行为的重要性,否则后续的`drop`事件将无法触发。这些细节清晰地展示了一个完整拖拽上传功能的实现骨架。 虽然技术方案有一定年份,但文章清晰展示了如何组合基础API解决一个实际的交互问题,对于理解前端文件处理与异步上传的演进脉络仍有不错的参考价值。

本机暂存
IT DevOps/ 2014-03-19 22:27:10 / 累计浏览 1,741

DNSv6和DNS64简单配置

这篇讲的是如何在Linux系统上配置IPv6环境下的DNS服务,特别是DNSv6和DNS64功能。作者从上一篇DHCPv6的部署延伸出来,直指DNS作为互联网入口在IPv6时代的重要性。 文章以Bind服务为例,给出了清晰的实操路径。它从最简单的源码安装开始,然后聚焦于核心配置:如何让DNS监听IPv6地址(`listen-on-v6`指令是关键),并配置了测试用的IPv6地址段。配置过程还包括了关闭防火墙、设置SELinux等便于测试的准备工作,同时提醒线上环境需合理配置安全策略。 最终,文章提供了一个精简的主配置文件(`/etc/named.conf`)示例,让读者能快速抓住启用IPv6 DNS服务的配置要点。整体而言,这是一篇步骤明确、重点突出的配置指南,适合需要快速上手IPv6 DNS服务搭建的运维人员参考。

本机暂存
IT 后端/ 2014-03-19 22:26:07 / 累计浏览 3,275

Linux内核中通过文件描述符获取绝对路径

这篇深入探讨了一个内核开发中具体且实用的场景:当你只知道一个进程的pid和它持有的某个文件描述符fd时,如何在内核里一步步找回该文件在磁盘上的绝对路径。 文章的核心思路是沿着内核的数据结构进行“导航”。它首先通过pid找到进程的task_struct,再从中取出进程打开的文件表files_struct。以fd为索引,就能定位到代表这个文件的内核结构体file。接下来是最关键的两步:从file中获取封装了dentry(目录项)和挂载点信息的path结构,并最终调用内核函数`d_path()`,将这一系列结构解析为人类可读的绝对路径字符串。 整个实现过程清晰展示了Linux内核管理进程与文件系统的精巧层次。这种从进程到文件、再到路径的逆向追踪能力,对于调试内核模块、进行系统监控或编写特定内核功能来说,是一项非常基础且重要的技术。

本机暂存
IT 后端/ 2014-02-18 23:30:35 / 累计浏览 1,464

稿酬模式

这篇文章讲的是内容平台支付作者报酬的模式演变。作者从“稿费”到“稿酬”的用词变化入手,指出2013年以来,在TMT领域出现了几种值得关注的新付费模式。 文章核心分析了三种半新模式。PK模式常见于像虎嗅、钛媒体这样的平台,它们不定篇付费,而是通过访问量或投票竞赛来决定少量作者能获得的奖品或稿酬,本质是成本控制手段。土豪模式以百度百家和腾讯广点通为代表,平台拥有海量广告主,通过文章页广告收入与作者分成来实现盈利,但收入高度依赖平台的流量分配。高富帅模式则是腾讯大家这类平台的做法,以高额稿费(据称可达每字1-2元)直接买断优质内容,不追求即时商业化,目标在于塑造舆论影响力。最后半个是经纪人模式,平台作为中介为自媒体对接商业推广需求。 文章指出了这些模式的适用场景与关键差异:PK模式适合起步期媒体,土豪模式依赖平台广告主规模,高富帅模式则需要雄厚资本支持。作者也预见了不同模式未来可能走向融合。

本机暂存
IT 设计/ 2014-02-18 23:23:18 / 累计浏览 3,323

[译文]设计转场动效

这篇译文探讨了一个设计师们常忽略的细节:状态之间的转场动效。文章指出,许多设计师专注于像素级的按钮、图标和表单,但当用户点击按钮后,界面是如何从状态A“切换”到状态B的,这个过程往往被视为理所当然。作者认为,这种生硬的跳转在真实世界中并不存在,而利用好“时间”这个被忽视的维度,动效就能成为功能性工具,而不仅仅是装饰。 文章通过对比静态设计与动效设计,清晰地阐述了两者的关键差异。静态设计是孤立的画面,无法描述过程;而精心设计的动效(例如应用缓冲曲线调整动画节奏)则能引导用户的视觉,解释信息的流动。具体例子中,文章对比了列表新增条目时直接跳变与平滑展开填充的体验差异,也对比了常见的侧滑跳转与将详情页视为内嵌展开的交互逻辑。作者指出,后者能让用户更直观地理解自己所处的层级深度,从而减少对面包屑导航的依赖。 这些思路的核心在于让数字界面的过渡更贴近我们对物理世界的认知习惯。通过赋予界面变化以符合直觉的时间与空间逻辑,交互不仅能变得更流畅自然,也能在无形中传递更清晰的系统状态信息,最终提升整体体验的优雅度与可用性。

本机暂存
IT 安全/ 2014-02-18 12:51:14 / 累计浏览 4,540

中国黑客传说:天生我材

这是一篇关于一位传奇黑客“A君”成长与地下世界经历的深度故事,属于典型的事件复盘与观点呈现类文章。 作者从A君的启蒙时代讲起,他从小学学习编程,受2001年中美黑客大战影响投身黑客领域。文章细致刻画了他如何通过一本牛津字典啃国外技术论坛、用自制木马进行笨拙的“爱情攻击”,以及遇到一位美国师傅后技术视野的飞速提升。A君的故事真正“硬核”之处在于他加入地下组织后的实战:他们通过全球部署的上千台服务器蜜网系统,每年捕获数十万次攻击行为并挖掘0day漏洞;更早于2007年就通过劫持数百万台家用路由器的DNS并分析流量,实现了当时还被称为“商业智能”的数据挖掘变现。文章通过A君“入侵安全公司”来反向研究行业动态的视角,以及他们利用微软MAPP计划的POC编写Exploit的大胆操作,揭示了黑客技术前沿与安全行业之间“道高一尺,魔高一丈”的微妙博弈。 这不仅仅是一个天才少年的黑客梦,更是一幅关于自驱力、师徒传承与草根技术精英如何在灰色地带开辟道路的生动图景。它向读者揭示了真实世界中技术能力与机遇结合可能走向的极端,以及黑客文化中独特的生存法则与思维方式。

本机暂存
IT 安全/ 2014-02-18 12:49:39 / 累计浏览 2,492

安全问题的本质

这篇从一则广泛流传的“手机丢失后支付宝资金安全”传闻切入,探讨了一个更根本的问题:安全问题的本质是什么?作者在自己的《白帽子讲Web安全》一书中,给出了核心论断——安全问题的本质,其实是信任问题。 以此视角审视支付宝,其安全模型在设计时,就将手机设定为所有可信任环节中的“最后一环”和优先级最高的一环。这并非疏忽,而是一种演进后的妥协:曾经使用的邮箱验证、数字证书等方式早已被黑客技术突破,变得不够可靠。但随着“余额宝”带来资金规模激增,手机作为唯一强信任锚点的风险也随之放大。 作者认为,单纯堆叠安全功能并不可取。他提出了几个解决方向:对大额资金用户,系统无法完美时可引入人工服务作为补充;应设置更严格的大额交易限制与异常冻结机制;最高境界或许是引入保险,从根本上解决用户“敢不敢放钱”的信任障碍。文章最终指向一个朴素的理念:让安全回归简单,或许是比复杂功能更重要的设计准则。

本机暂存
IT 设计/ 2014-02-18 12:41:15 / 累计浏览 4,840

移动产品设计之场景感

这篇讲的是移动产品设计中常被提及却容易空洞的概念——场景感。作者认为,场景感本质是一种“讲故事”的能力,产品经理要像导演一样,去模拟用户在特定环境下的行为、意图与感受,以此驱动设计。 文章的核心观点是“产品设计的成败首在场景”,并辅以生动实例。例如,一个警示“记得抬头”的便签,贴在键盘上方才真正有效,因为它在用户低头时(问题即将发生)恰好可见;而常见的Wi-Fi密码输入设计(如默认密文显示)则可能脱离实际——用户在咖啡馆边看边输时,明文显示反而是更高效、自然的选择。这些例子揭示,好的设计如同空气,存在于场景之中却不被察觉。 作者进一步指出,场景描述能完整呈现“人-状态-问题-操作-反馈”的闭环,这不仅是构建产品的基础,也是与团队沟通的有效方式。培养场景感,则需要深入实际体验(如住酒店、观察前台)、练习分解操作步骤,并尝试用大白话向非专业人士解释设计思路。当设计遇到困惑时,回归场景模拟往往是寻找答案的最佳路径。

本机暂存
IT 开发者/ 2014-02-18 12:37:16 / 累计浏览 3,208

那些被大佬带进沟里的名言

这篇文章在吐槽一个普遍现象:大佬们抛出的那些“武功秘籍”,比如“注重用户体验”、“小步快跑”、“不断试错”,在传播中往往只剩下了招式概要,缺乏前提和上下文,导致很多人盲目跟从反而“走火入魔”。 作者逐一拆解了这些被滥用的名言。比如,只谈“小步快跑”却不说跑完后如何经营,就像“旋风将军”连下数城却无分兵把守;只强调“不断试错”而不讲试错的风险与准备,就如同在黑暗森林中轻易暴露自己;而“做轻、小而美”在初期有效,但产品要常青,最终必须“深扎根”,处理好随之而来的各种“脏活累活”。 文章的核心观点是,产品成功的要素是多方面的,单纯依赖某个流行方法论是危险的。作者从重视设计、到认识价值的重要性,最终落脚到“运营的设计”与构建“产品循环”上,强调产品必然始于创意,但成功必然成于持续且系统化的运营。

本机暂存
IT 开发者/ 2014-02-18 12:35:48 / 累计浏览 2,921

如何对一个需求做价值判断

作者认为功能(解决方案)本身没有价值,其背后所满足的**需求(问题)**才是价值的真正来源,而选择哪种功能则直接决定了成本。因此,对需求的评估本质上是一场**性价比**(价值/成本)的较量。 这篇文章的核心,是拆解了如何从两个关键维度来判断一个需求的价值:一是**是否核心用户**,这需要综合考量用户规模与单用户价值;二是**是否刚性需求**,其判断标准包括有无替代方案、发生频率以及持续时间(有效期)等具体因素。文中以天猫积分提醒的设计、特斯拉对传统代步需求的升级为例,生动说明了如何应用这些原则。 更进一步,作者指出每个团队都应结合产品特性,建立独特的“加分项”(如惊喜感、甚至老板的强烈要求),并最终形成适合自己的需求价值评估模型。这对于在资源有限时,决定优先实现哪些功能的产品和技术团队而言,提供了一套清晰的决策框架。

本机暂存
IT 后端/ 2014-02-18 12:34:38 / 累计浏览 4,189

TCP网络协议以及其思想的应用

这篇深入探讨了TCP协议核心思想的文章,跳出了单纯的网络协议讲解,聚焦于如何将TCP在不可靠网络上构建可靠传输的智慧,活用到更广泛的系统设计中。 作者从大多数程序员对TCP的熟悉但未必精通的状态切入,明确指出TCP的精髓是在IP层的不可靠传输之上建立可靠机制。其核心技术如滑动窗口、慢启动、指数退避等,目的都是优化传输。但更重要的,是它提供的设计范式。 文章强调,TCP的“可靠”是相对自身协议栈而言的,一旦跨越不同系统边界(比如从一个应用到另一个应用),就需要重新审视可靠性。因此,任何涉及通信与交互的场景,都可以借鉴TCP的思想。 作者提炼出了在任何通信系统之上构建可靠传输所必须的三要素:确认、重传和顺序。这为我们设计自定义可靠协议(例如在UDP之上)或解决复杂交互问题,提供了清晰且根本的思路。

本机暂存
IT 前端/ 2013-11-21 23:18:46 / 累计浏览 3,278

网页重构应该避免的10大 CSS 糟糕用法

这篇文章系统性地总结了网页重构中10个应当避免的CSS坏习惯,并将它们归纳为“权重”、“工作流”和“自以为是”三大类。作者从权重控制这个核心痛点出发,详细剖析了滥用ID选择器、嵌套层级过深的选择器、内联样式等常见问题。例如,一个带有多个层级的ID选择器(如#header #title a)虽然看似语义明确,却会产生过高的特异性,导致后续样式覆盖困难,代码难以维护。 在工作流方面,文章批评了从上到下、仅凭文档流命名的粗放方式,以及样式冗余问题。它强调应遵循DRY(不要重复自己)原则,并介绍了如何利用Sass的@extend等预处理器特性来抽象公共样式,提升代码复用性。此外,统一使用rem或em这类相对单位替代px,也被指出是提升样式灵活性和可维护性的重要一环。 文章最后提醒开发者需关注CSS3新特性的浏览器兼容性,避免在样式表中堆积无效规则。整体而言,它为前端开发者提供了一份清晰的CSS反模式清单与改进指南,帮助团队建立更健壮、更易维护的样式架构。

本机暂存
IT 开发者/ 2013-11-21 23:10:45 / 累计浏览 6,338

领导需要比下属更懂技术吗?

这篇文章从作者自身的职场经历出发,探讨了一个常见的管理困惑:技术管理者是否必须比下属更懂具体技术?作者回忆了早年推动项目从Java 1.4.2升级到5.0时,被保守的项目经理质疑的经历。他当时认为领导因知识陈旧而抵触新技术,但后来理解到,领导的决策更多基于系统稳定性、风险评估与资源调配等更高层面的考量。 文章的核心观点在于,优秀的领导者需要具备的是“抽象”思维的能力。他们不必精通每一个技术细节,但必须能从过往经验中提炼出共性规律,从而准确判断任务的价值、难度与风险,并做出合理的资源分配决策。例如,即使不懂代码细节,领导也能评估一个搜索优化项目的周期和意义。当面临如代码管理工具从SVN切换到Git这样的具体技术决策时,领导应保持开放心态去了解,但决策焦点应放在评估切换的好处、团队适应成本及潜在风险上。 作者还提供了一种高效的知识更新方法:将团队视为自己学习的“延伸大脑”。通过组织技术分享会,鼓励成员讲解新技术,领导既能以最小成本保持知识前沿,又能促进团队整体成长和成员表达能力的提升。这篇文章最终给出的启发是,技术领导的核心价值不在于技术领先,而在于通过有效的组织和抽象思考,引导团队在正确的方向上创造价值。

本机暂存
IT 开发者/ 2013-11-21 23:09:33 / 累计浏览 5,491

领导如何应对员工离职

这篇讲的是管理者如何系统性地应对员工离职,尤其是技术团队中常见的程序员离职问题。作者没有纠缠于个案原因,而是直指核心:想留住人,必须满足“员工觉得公司有发展”和“觉得自身有发展”这两个条件。 对于如何让员工感知公司发展,作者批判了传统的“宣传”模式,认为其不可信。他提出的方案更根本:领导要为员工设定真正有意义的工作,并让员工看到自己工作的价值。比如,让程序员亲眼见证自己编写的程序如何大幅提升业务效率,这种实实在在的关联比任何口号都能建立归属感。 而在员工个人发展方面,文章强调领导不能只当任务分配者。需要主动了解员工的潜力和意愿,将挑战性任务与他们的成长阶段相匹配,并通过持续沟通提供发展建议。这不仅能预防因“没头脑”的跳槽造成的被动,也是团队建设的一部分。 最后,文章驳斥了那种认为“领导有权力就不怕离职”的观点,指出单纯依赖权力无法驱动知识工作者。好的领导必须通过赋能和成长来赢得团队,而不是仅仅依赖职级赋予的控制力。

本机暂存