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

最新文章

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

IT 后端/ 2009-11-19 09:41:18 / 累计浏览 3,654

Ruby作为服务器端应用已经成熟了

这篇讲的是JavaEye团队在将Ruby on Rails应用于生产环境后,遭遇的一个棘手难题:Ruby进程的内存泄露。 他们的服务器因此深受其扰,不得不自己动手开发了一套监控脚本,来实时检测和定位泄露的Ruby进程。文章深入探讨了导致Ruby内存管理不善的两个核心原因。虽然标题提到了Ruby的“成熟”,但作者并非唱赞歌,而是从这些实际踩过的“坑”出发,坦诚地剖析了作为服务器端语言在内存控制层面存在的挑战与实践经验。 对于正在使用或考虑采用Ruby的技术团队而言,这篇文章的价值在于它并非泛泛而谈的优劣对比,而是提供了来自生产一线的第一手排查思路与教训,其中关于监控脚本的实践部分尤其具有参考意义。

本机暂存
IT 设计/ 2009-11-19 09:38:38 / 累计浏览 4,346

12张流程图讲述我们的一生

这篇讲的是,用一种典型Geek的方式来解构人生——作者搜集了12张有趣的流程图,从K歌点歌(比如《Hey Jude》的歌词分支)、游戏攻略(魔兽世界)、交友算法(致敬《生活大爆炸》的Sheldon),一直画到约会、恋爱、结婚,甚至工作与“网页设计师资格测试”。 这些图覆盖了娱乐、社交、情感与职业的方方面面。作者并非在严肃讨论流程管理,而是带着技术人的幽默,把复杂甚至混沌的生活选择“可视化”为一条条清晰的判断路径。比如,他展示了“如何对待一个笑话”的决策树,或是用三张广告流程图调侃男女差异。 文章最核心的趣味点在于这种形式与内容的碰撞:用最理性、最结构化的工程工具(流程图),去描绘最感性、最不确定的人生历程。最后那张“人生的位置”流程图,仿佛在说我们每个人都不过是在一系列选择节点上“这里坐坐,那里坐坐”。全文没有说教,只是用12个“销魂”的例子让你会心一笑,并或许开始用流程图的视角,重新打量自己的日常。

本机暂存
IT 后端/ 2009-11-19 09:37:32 / 累计浏览 3,007

分割GBK中文遭遇乱码的解决

这篇讲的是 PHP 中处理 GBK 编码字符串时的一个常见“坑”。作者从实际问题出发:使用 explode 函数按分隔符拆分一段 GBK 编码的中文字符串时,得到了意料之外的错误结果。 问题的根源在于 PHP 的 explode 默认以单字节方式操作字符串,而 GBK 编码中的汉字通常占用两个字节。当分隔符恰好出现在多字节字符的内部时,explode 无法正确识别边界,导致拆分错乱。解决方案的核心是使用支持多字节处理的正则表达式函数 preg_split,通过指定正则表达式和 u 修饰符来确保按 Unicode 字符边界进行分割。 文章不仅给出了修复代码,还解释了背后的编码原理。对于需要处理历史系统 GBK 数据或维护兼容性的开发者来说,这个具体案例清晰展示了编码差异带来的实际影响以及正确的处理方式。

本机暂存
IT 后端/ 2009-11-19 09:36:14 / 累计浏览 2,762

Nginx(PHP/fastcgi)的PATH_INFO问题

这篇讲的是在Nginx配合PHP-FPM(fastcgi)运行时,一个典型却又容易被忽视的PATH_INFO问题。很多开发者在使用如ThinkPHP等框架时,会发现URL中的PATH_INFO参数意外丢失或错乱,导致路由无法正常解析。问题的根源往往在于Nginx默认的配置并不会自动将PATH_INFO传递给PHP处理器。 文章从这个实际痛点出发,细致剖析了Nginx的location匹配规则与fastcgi_param传递机制。作者指出,关键是要理解两个不同location块的作用:一个负责将.php文件交给后端,另一个则负责捕获并设置PATH_INFO变量。通过配置示例,文章演示了如何通过正则表达式捕获路径信息,并使用`fastcgi_param`指令将其正确传递,从而让PHP应用能接收到预期的参数。 整个排查和解决过程清晰明了,最终给出的配置方案能直接复用,帮助读者彻底解决这个由服务器配置细节引发的路由故障,让URL重写功能恢复如常。

本机暂存
IT 前端/ 2009-11-18 23:40:47 / 累计浏览 1,801

frame调用另外一个frame的内容

这篇讲的是在多frame页面架构中,如何安全、有效地让一个frame调用另一个frame的内容。作者从实际开发中常见的需求出发——比如嵌入式报表需要读取父页面的配置,或者聚合页面需要跨窗口同步状态——系统梳理了不同技术方案的适用边界。 文章重点剖析了直接访问父/子frame对象这种最直观方法的局限性,尤其是在跨域场景下必然触发的浏览器安全策略。随后,作者深入讲解了postMessage API这一现代标准方案,不仅给出了基本用法的代码示例,还特别强调了消息来源(origin)验证、数据序列化以及监听器清理等容易被忽视的安全与性能细节。 此外,文章对比了URL片段标识符、cookie共享等传统技巧,指出它们虽在特定简单场景下可用,但在复杂度和可靠性上已无法满足主流需求。结论清晰:对于跨域通信,postMessage是唯一可靠的浏览器原生方案;同域环境下,则可结合DOM直接操作与postMessage以兼顾灵活性。

本机暂存
IT 后端/ 2009-11-18 23:38:56 / 累计浏览 2,755

阿里巴巴:制造孤独的CEO

这篇讲的是《中国企业家》记者林涛对阿里巴巴高层决策生态的观察。文章并非聚焦技术架构或业务复盘,而是深入剖析了一个现象级企业的领导者所处的独特境遇。 作者从马云卸任后的管理格局变化切入,揭示了阿里巴巴庞大业务体系下CEO面临的结构性孤独。这种孤独并非情感层面的,而是源于决策路径的复杂性:当公司规模达到一定量级,最高决策者接收到的信息经过层层过滤与重组,其判断基础与一线现实可能产生微妙偏差。文章通过几位关键人物的言行片段,勾勒出“CEO制造机”这一角色的多重矛盾——既要保持战略前瞻性,又必须依赖庞大的中台系统来触达真实业务细节。 最值得玩味的是,文章将这种孤独感归因为一种必要的管理成本。在巨型组织中,某种程度的信息隔离恰恰是为了保证系统整体的稳定运行。这为所有规模企业的管理者提供了一个反思视角:当组织复杂度超越个人认知边界时,领导者该如何重新定义自己的决策角色与信息获取方式?

本机暂存
IT 后端/ 2009-11-18 23:38:10 / 累计浏览 2,982

perl的调试

这篇讲的是 Perl 程序调试的实用思路。作者从自己以前用 PHP 时依赖 `print`、`var_dump` 和浏览器插件 firebug 的经验出发,对比了 Perl 生态中不同的调试方法。 文章的核心是将 Perl 调试明确分为两大场景:一是“功能调试”,即排查逻辑错误、保证程序功能完整;二是“性能调试”,旨在优化代码效率。作者没有罗列工具,而是聚焦于调试思维的转变。 对比 PHP,Perl 的调试工具链更贴近代码本身。功能调试上,除了基础的输出语句,更强调使用 Perl 自身的警告(`-w`)、严格模式(`use strict`)以及内置的调试器(`perl -d`)来精准定位问题。性能调试则可能借助 `Devel::NYTProf` 等分析器来剖析瓶颈。文章隐含的结论是,掌握这两种调试策略的区别与工具,能让开发者更高效地从“写出能运行的代码”进阶到“写出健壮且高效的代码”。

本机暂存
IT 开发者/ 2009-11-18 23:37:18 / 累计浏览 2,439

在让linux中的gnome-terminal使用始终使用标签打开

这篇讲的是一个提升终端工作效率的小技巧。几乎所有现代浏览器都默认用标签页管理新页面,但 Linux 中的 gnome-terminal 却不行,用户每次都需要手动指定参数才能以标签形式打开新终端。文章从这个具体的使用痛点出发,分析了原因,并给出了一劳永逸的解决方案。 作者发现,虽然可以通过加 `-tab` 参数来启动带标签的终端,但这非常不方便。真正的解决方法是修改 gnome-terminal 的配置文件,让它在启动新窗口时,默认行为就是创建一个新的标签页,而非启动一个全新的独立窗口。这个小小的改动,让终端的多任务管理体验立刻向浏览器看齐。 对于习惯了标签化工作流的 Linux 用户来说,这个配置能省去不少操作步骤,让终端操作变得更加集中和高效。文章清晰地展示了从发现问题到解决问题的完整路径,是一个实用且容易上手的实践案例。

本机暂存
IT 后端/ 2009-11-18 23:36:21 / 累计浏览 7,716

perl大牛flw传说

这篇讲的是中国Perl社区里一位颇具传奇色彩的技术人物——flw。作者从他在ChinaUnix论坛担任Perl版主这一身份切入,但重点并非罗列他的头衔或经历,而是试图解析“传说”背后的技术底色与社区影响力。 文章通过具体事例,勾勒出flw作为技术领袖的特质:面对复杂问题时,他善于抽丝剥茧、直击核心;在社区讨论中,他既能深入细节解答技术疑惑,又能高屋建瓴地引导话题方向。这种“既能下探,又能上浮”的能力,正是解决实际工程难题与推动技术传播所必需的。 更深一层,文章探讨了这种影响力是如何形成的。它不只源于深厚的技术积累,更源于一种开放、务实且乐于分享的态度。flw所代表的,正是早期技术论坛时代那种通过扎实贡献赢得尊重的纯粹精神。 对于读者而言,了解flw的故事,不仅是认识一位前辈大牛,更是回顾一种理想的技术人成长路径:在解决真实问题、帮助他人、建设社区的过程中,个人的技术价值与声望自然会水到渠成。这对于当下依然在技术道路上探索的开发者,提供了一个值得思索的参照。

本机暂存
IT 后端/ 2009-11-18 23:36:04 / 累计浏览 5,234

perl大牛唐凤传说

这篇文章聚焦于Perl技术社区的一位传奇人物——唐凤。作者从2009年北京Perl Workshop的一则遗憾讲起:他因故未能见到久仰的唐凤,却引出了一个更深刻的话题——这位以极高工作强度闻名的开发者,其工作方式本身就是一种传说。 文章的核心观点并非直接赞颂其技术成就,而是通过圈内人的描述,勾勒出唐凤近乎“燃烧自己”式的奉献精神。文中引用了一句精准的评论:“我想了解唐凤工作的方式的爱好者都不难想象,以她那样的工作方式,迟早会累垮的。”紧接着,作者指出这并非虚言,唐凤确实因长期积劳成疾而病倒。 这使得文章超越了简单的人物介绍,带有一种观察与反思的色彩。它让读者看到,开源社区耀眼成就的背后,有时伴随着个人健康的巨大消耗。这种对技术先驱工作状态的直接呈现,或许比罗列贡献更能引发同行者的共鸣与思考。

本机暂存
IT DevOps/ 2009-11-18 23:27:30 / 累计浏览 3,810

Linux系统Load average负载详细解释

这篇从 top 和 uptime 命令输出里的三个数字说起,详细拆解了 Linux 系统中一个最常见却也最容易被误解的指标——Load average。 文章核心厘清了一个关键认知:这三个数值并非直接的 CPU 使用率,而是系统处于“运行”和“不可中断睡眠”状态的平均进程数。作者强调,理解负载必须结合系统的 CPU 核心数,负载值为 N 并不直接代表 N 个 CPU 被占满。文章会具体解释,如何通过比较负载值与 CPU 核心数来判断系统是处于空闲、均衡还是过载状态。 此外,文章还剖析了一分钟、五分钟、十五分钟这三个时间窗口的意义。短时间的负载波动可能由瞬时任务引起,而持续较高的长时间平均负载则更可能预示着系统性能的持续瓶颈。这帮助运维人员区分偶发压力与持续性问题,从而做出更准确的判断。 对于常常看着这三个数字一头雾水的工程师来说,这篇文章提供了一套清晰的解读框架,帮助建立正确的系统负载观测思维。

本机暂存
IT 前端/ 2009-11-18 23:07:46 / 累计浏览 2,641

用CSS 3将我们带入下一个高度吧!

这篇技术分享从CSS 2到CSS 3的演进切入,展现了前端样式语言的一次重要跨越。作者通过一张演示图,直观地体现了CSS 3在视觉表现力上的潜力。CSS 3不仅是对选择器和盒模型的补充,更带来了革命性的能力,例如更强大的动画、圆角、阴影,以及至关重要的2D与3D变换。这些特性让开发者能够使用纯代码实现过去依赖图片或JavaScript库的复杂效果,显著提升了开发效率和页面性能。 文章的核心在于鼓励开发者拥抱这些新工具。它并非枯燥地罗列属性,而是通过实例传递一个观点:掌握CSS 3,意味着能让网页突破平面的局限,构建出更具沉浸感和交互性的界面。对于前端工程师而言,这不仅是技术的更新,更是将创意更高程度地转化为现实的机遇。

本机暂存
IT 前端/ 2009-11-18 23:07:14 / 累计浏览 3,254

由黄钻等级图标处理引发的思考

这篇讲的是腾讯黄钻等级图标在开发过程中,因一个看似简单的样式处理而引发的技术思考。作者从黄钻图标的实现细节出发,不仅关注如何实现视觉效果,更深入探讨了这种处理方式背后可能存在的性能隐患与代码维护问题。文章通过具体案例,引出了对前端开发中“优雅实现”与“工程健壮性”之间平衡的讨论,提醒开发者在追求代码简洁或视觉表现时,需对潜在的扩展性与浏览器兼容性保持警觉。这种由小见大的思考方式,对于日常处理组件或样式开发的工程师而言,很有启发。

本机暂存
IT 设计/ 2009-11-18 23:06:23 / 累计浏览 3,811

视觉设计前瞻实用性研究(PNVD) 第一期

这篇讲的是视觉设计领域的一个新尝试——“前瞻性视觉设计”(PNVD)研究计划的第一期内容。不同于单纯追逐趋势,PNVD的核心在于探讨如何将那些具有前瞻性的视觉美学与实际的工程开发、产品可用性相结合,找到一个平衡点。 作者从实践中常遇到的设计与开发脱节的痛点出发,提出在设计流程早期就需要嵌入对技术实现、性能影响和用户体验的考量。第一期作为开篇,重点剖析了一个具体的设计案例,详细拆解了从概念草图到最终界面呈现过程中,那些关键的前瞻性决策点,以及为适应工程约束而做出的巧妙取舍。 这项研究的价值在于,它为设计师和开发者提供了一个共同思考的框架,让“酷炫”的设计不止于效果图,更能成为可落地、体验良好的产品组件。对于团队如何协作以产出既创新又务实的设计方案,这期内容给出了一个扎实的起点。

本机暂存
IT DevOps/ 2009-11-18 13:43:50 / 累计浏览 3,931

ubuntu 笔记之:如何修改dns

这篇文章记录了一个实际问题:北京地区有用户发现其Ubuntu系统上网时,域名解析异常缓慢,ping网关延迟仅3毫秒,但解析一个域名却经常需要2秒以上。问题的根源被确认是运营商提供的DNS服务器不稳定。为了解决这个“抽风”的故障,作者着手修改了系统的DNS配置。文章具体分享了在Ubuntu(特别是使用NetworkManager管理网络)的环境下,如何通过修改系统配置文件来指定更可靠的DNS服务器地址。这是一个典型的因上游DNS服务问题导致的本地网络故障,解决方法直接有效,对于遇到类似网络卡顿的用户具有实操参考价值。

本机暂存
IT 设计/ 2009-11-18 13:43:03 / 累计浏览 2,489

小xiao说说创意图标设计心得

这篇讲的是设计师小xiao分享的创意图标设计心得。作者从几个核心原则出发,探讨了如何让图标在功能性与美观性之间找到平衡。 文章特别强调了创意不能脱离易用性。作者认为,一个成功的创意图标,首先要确保用户能一眼识别其含义。他提到,设计师需要巧妙地将隐喻、文化符号或情感与功能结合,而不是为了炫技而设计。比如,在构思一个“分享”图标时,比起直接画一个箭头,或许可以融入“连接”或“传播”的抽象概念,但前提是这个概念必须直观。 作者也谈及了设计过程中的具体方法。他建议从草图阶段就开始发散思维,同时要紧密关注当前的设计趋势,确保自己的作品既有新意又不显过时。更重要的是,他指出创意源于对日常生活的敏锐观察,将生活中的感悟提炼并转化为视觉语言,是图标设计灵感的源泉。 读完这篇,或许能帮你跳出工具层面的思考,从更高维度去审视图标设计的本质——它不仅是界面元素,更是与用户沟通的无声语言。

本机暂存
IT 后端/ 2009-11-18 13:42:01 / 累计浏览 2,042

搜索引擎spider整理

这篇由rethink在2009年发布的文章,系统梳理了搜索引擎蜘蛛(spider/crawler)的核心机制与实践要点。作者从蜘蛛的抓取原理切入,解释了它是如何通过链接发现并持续访问网页的,并区分了广度优先与深度优先等不同抓取策略的适用场景。 文章特别强调了网站与蜘蛛交互的关键环节。例如,如何通过`robots.txt`文件有效引导抓取行为,避免服务器过载;以及Sitemap如何帮助蜘蛛更高效地发现深层内容。此外,对于当时常见的网站架构问题,如动态URL、重复内容和死链,作者也给出了相应的优化建议,旨在提升蜘蛛的抓取效率和网站的索引质量。 尽管成文于多年前,但其中关于爬虫基础逻辑、网站结构优化以及与搜索引擎友好沟通的原则,对于理解SEO基础及网站运维仍有直接的参考价值。这是一份清晰、实用的入门整理,适合需要快速建立相关知识框架的开发者与网站管理员。

本机暂存
IT 前端/ 2009-11-18 13:39:42 / 累计浏览 2,576

javascript 回退到前一页的写法

这篇讲的是前端开发中一个常见但容易踩坑的需求:如何用JavaScript实现“返回上一页”的功能。作者从实际场景出发,不仅给出了最基础的 `window.history.back()` 写法,还深入对比了使用 `history.go(-1)` 和 `location.href` 等不同方案的核心差异。 文章重点分析了各种方法的适用边界:`history.back()` 依赖浏览器历史记录栈,如果用户是直接输入网址访问当前页,调用后可能会跳转到无关页面甚至失效;而基于 `location.href` 的硬编码回退则更可控,但失去了“返回”的灵活性。作者通过具体代码示例,说明了如何结合 `document.referrer` 进行判断,来构建一个更健壮的回退逻辑。 最终,文章强调了没有“万能”的回退方案。选择哪种写法,取决于你是需要严谨的“浏览器历史导航”,还是更看重“确保跳回上一个业务状态”的可靠性。这些细节的对比,能帮助开发者在不同项目里做出更合适的选择。

本机暂存
IT 前端/ 2009-11-18 13:39:27 / 累计浏览 2,726

IE 中无提示关闭窗口的方法

这篇文章讲的是如何在Internet Explorer中,绕过其安全机制实现无提示直接关闭窗口。作者从开发者常遇到的痛点出发:调用`window.close()`时,IE会弹出一个“您要关闭此窗口吗?”的提示框,影响用户体验和自动化流程。文章没有长篇大论,而是直接给出了一段精炼的JavaScript代码解决方案。 核心技巧在于巧妙地组合使用两个方法。在调用`window.close()`之前,先执行`window.open('', '_parent', '')`。这一步的作用是尝试用`_parent`(父窗口)的名称打开一个“空”窗口。如果当前窗口本身就是顶层窗口,这个操作在IE看来就等同于将当前窗口的句柄赋给了名为`_parent`的上下文。紧接着的`window.close()`因为是在“自身”上下文中执行,从而绕过了IE的安全检测,实现了无提示关闭。 这种方法尤其适用于早期B/S系统中的弹出窗口管理,或者需要静默退出的页面场景。它并非依赖系统配置,而是利用了IE浏览器特定的窗口上下文处理逻辑,是一个非常经典的前端技巧。当然,需要注意的是,随着现代浏览器对安全策略的收紧,以及IE本身已逐渐退出历史舞台,这类技巧的适用范围已相对有限。

本机暂存
IT 数据库/ 2009-11-18 13:15:52 / 累计浏览 3,721

云计算中的结构化数据:Google GAE Datastore

这篇文章聚焦于云计算中的结构化数据存储,深入探讨了Google App Engine的Datastore。作者从GAE Datastore的基本概念切入,解释它如何基于Google大名鼎鼎的Bigtable技术构建,提供一个(半)结构化的数据存储方案,专为云原生应用设计。 与传统关系型数据库如MySQL相比,GAE Datastore放弃了严格的ACID事务保证,转而通过分布式架构实现近乎无限的横向扩展,这在处理海量数据

本机暂存