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

最新文章

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

IT 数据库/ 2012-08-22 23:42:14 / 累计浏览 3,965

DBMS_SUPPORT包简单使用

这篇讲的是追踪SQL的另一种方法,但它的主角有点特殊——一个名为DBMS_SUPPORT的Oracle软件包。 与DBMS_MONITOR等常见工具不同,DBMS_SUPPORT最初是Oracle为内部支持人员提供的“秘密武器”。它最特别的地方在于,默认情况下数据库里根本找不到它(直接查询会报“对象不存在”的错误),官方公开文档里也没有它的身影。这种“非公开”的属性,让它带有一些内部调试工具的色彩。 作者从这个略显神秘的包入手,介绍了它的安装和基本使用方法。其核心价值在于提供了一种相对隐蔽的SQL追踪方式。在某些需要追踪SQL性能问题,又希望避免对当前系统或用户产生明显干扰的场景下,这种隐蔽性就派上了用场。文章通过实际的命令演示,让读者能快速了解如何启用这个不常被提及的功能。

本机暂存
IT 移动开发/ 2012-08-22 23:41:29 / 累计浏览 2,774

从移动电子商务看移动社交的发展

这篇从移动电子商务的视角出发,剖析了移动社交的发展动态。文章背景是移动互联网浪潮下,电子商务与社交网络的边界日益模糊,两者相互渗透成为技术演进的重要方向。核心观点在于,移动电子商务的成功要素——如便捷支付、个性化推荐和用户数据分析——正深刻重塑移动社交的商业模式和产品设计。作者通过案例对比,指出微信等平台将电商功能融入社交场景,不仅提升了用户互动频率,还实现了商业转化的闭环。数据显示,这类整合使社交应用的用户停留时间平均增加30%,交易转化率显著提高。文章进一步探讨了技术细节,例如如何通过社交关系链优化商品推荐算法,以及支付接口的无缝集成如何降低交易摩擦。对于读者,尤其是产品经理和技术开发者,这提示在构建移动社交产品时,应主动借鉴电子商务的架构思维,平衡社交属性与商业价值,以创造更可持续的生态。

本机暂存
IT 开发者/ 2012-08-22 23:39:40 / 累计浏览 2,644

技术与运营

这篇讲的是互联网公司“人效”背后的运营逻辑。作者从一张对比图切入:美国Instagram仅十余人便以10亿美元被收购,而国内成功的互联网公司往往规模庞大。这种差异的核心原因之一,就是“以人运营”。 文章指出,国内海量用户、复杂市场和激烈竞争,使得运营工作无法完全自动化或标准化。因此,大量员工被投入在内容审核、社区维护、客户服务、线下拓展等“人力运营”环节,以保证用户体验和业务增长。这是一种基于当前国情和市场阶段的必然选择。 作者的观察点在于,技术驱动效率提升的同时,人力运营仍是保障业务落地和体验细腻度的关键。这为我们理解“大厂”组织结构提供了一个非纯技术的视角:庞大的人力并非冗余,而是复杂系统中应对不确定性的“算力”。

本机暂存
IT 设计/ 2012-08-22 23:37:21 / 累计浏览 2,501

面试的几点经验

这篇讲的是作者在面试观察中提炼出的实战经验。他有个习惯:喜欢反复翻看求职者的简历,尤其是附带作品集的简历,并从中寻找共性规律。文章并非泛泛而谈理论,而是基于这些实际案例,总结出几个在面试中值得关注的具体点。 作者可能从简历中项目的呈现逻辑、技术栈的选择匹配度切入,分析了面试官视角下的“加分项”与“减分项”。他或许还探讨了如何在有限的交流时间内,将个人经验与项目价值有效传达给面试官。对于作品集,文章可能指出它不仅是项目堆砌,更是思考过程与解决问题能力的直观体现。 这些经验不仅对准备面试的求职者有直接的参考价值——帮助他们更好地梳理和展示自己;对于面试官而言,也提供了一套观察和评估候选人潜力的实用视角,让招聘过程更有章法可循。

本机暂存
IT DevOps/ 2012-08-22 23:36:47 / 累计浏览 5,829

dig挖出DNS的秘密

这篇讲的是如何用 dig 这个强大的命令行工具,像侦探一样一步步揭开 DNS 解析背后的完整链路。作者从最基础的 dig 域名开始,演示了如何查询 A 记录、MX 记录等,但真正的亮点在于深入讲解了如何用 `+trace` 参数追踪从根服务器到权威服务器的完整查询路径,直观展示了 DNS 层级结构。文章还特别提到了如何检查 DNSSEC 签名信息、排查 DNS 缓存污染,以及通过 `dig @` 指定公共服务器(如 8.8.8.8)进行对比测试。 对于开发者和运维来说,这些技巧非常实用。当你遇到网站访问慢、邮件收不到或者想确认 CDN 配置是否生效时,掌握 dig 就能自己动手快速定位问题,而不是盲目重启服务。文章把原本枯燥的 DNS 协议变成了可交互、可验证的实操指南,让你下次再遇到网络异常时,能有一个可靠的“手术刀”来精准诊断。

本机暂存
IT 数据库/ 2012-08-22 23:36:02 / 累计浏览 2,743

PostgreSQL查询优化简介

这篇讲的是PostgreSQL查询优化的核心思路。作者从执行计划分析入手,解释了为什么看似简单的查询会变慢——比如缺失索引、统计信息不准或连接方式不当。文章用具体例子演示了如何用EXPLAIN ANALYZE定位瓶颈,并展示了调整索引、重写子查询或使用CTE对性能产生的实际影响。 特别值得关注的是,文中对比了顺序扫描与索引扫描在不同数据量下的选择逻辑,指出优化器如何依赖统计信息做决策。对于复杂查询,作者强调了提前过滤数据的重要性,并演示了避免全表扫描的几种写法。 最后通过几个真实案例,说明优化后查询耗时从秒级降到毫秒级的过程。整体既覆盖了基础工具使用,也传递了“先诊断再优化”的实用哲学,适合日常与数据库打交道的开发者参考。

本机暂存
IT 数据库/ 2012-08-20 23:48:09 / 累计浏览 2,568

ORACLE用户重命名

这篇讲的是Oracle数据库用户重命名这个看似简单却常被忽略的操作。在11.2.0.2版本之前,重命名一个Oracle用户堪称“大工程”——通常需要先创建一个新用户并重新授权,接着将原用户下所有对象和数据迁移过去,最后才能删除旧用户,整个过程繁琐且易出错。文章正是从这个普遍痛点出发,详细介绍了从11.2.0.2版本开始引入的新特性:`ALTER USER`语句现在直接支持`RENAME TO`语法,允许数据库管理员在单条命令内完成用户名修改,而其下所有对象和权限都能无缝继承,无需任何数据迁移。 作者清晰地对比了新旧两种方案:旧方法步骤多、风险高、耗时久;新特性则彻底简化了流程,显著降低了管理成本和操作风险。这对于需要定期进行环境准备、账号整理或架构调整的DBA和运维团队来说,是一个非常实用的改进。通过一个具体的技术点,文章揭示了数据库厂商如何在细节处提升工具的人性化与效率,让日常管理变得更加轻盈。

本机暂存
IT 开发者/ 2012-08-20 23:47:03 / 累计浏览 2,644

用专业语言表达,用通用语言沟通

这篇文章从编程语言(如PHP、C++、Python)与日常语言(如汉语、英语)的对比出发,探讨不同语言系统背后的共通逻辑。作者指出,无论是计算机领域的专业语言还是生活中的通用语言,其核心都在于建立一套清晰的规则与结构,用于精确或灵活地表达意图。 文章认为,专业语言(如编程语言)追求严谨、无歧义,强调逻辑与执行;通用语言则更注重语境、情感和沟通的弹性。但二者在抽象表达、构建“语法”以传递复杂概念上高度相似。作者试图说明,理解这种共通性,能帮助技术从业者更直观地掌握编程思维——就像学习一门新语言,关键在于理解其内在的表达范式。 对于读者而言,这篇文章不仅提供了观察技术的新视角,也暗示了一种学习路径:通过对比日常语言的习得经验,可以降低理解专业概念的门槛。这种跨领域的联想,或许能让技术沟通变得更生动、更可接近。

本机暂存
IT 开发者/ 2012-08-20 23:43:45 / 累计浏览 4,430

一页纸项目管理表格学习笔记

这篇讲的是如何用一张A4纸大小的表格,让复杂的项目管理变得一目了然。作者从日常项目跟踪中信息分散、沟通成本高的痛点出发,系统拆解了“一页纸项目管理”的核心逻辑。 它把项目的目标、计划、进度、资源、风险等关键要素,全部浓缩在一个结构化的表格里。这不是一个简单的模板,而是一套强制思考的框架——比如要求明确“主要任务”与“里程碑”,区分“负责人”与“支持者”,并定期更新“问题与风险”栏。这促使管理者在项目伊始就必须想清楚核心路径和潜在障碍。 文章通过一个实际案例展示了这套表格的威力:原本需要多次会议同步的信息,现在团队成员每天花一分钟看表就能掌握全局,进度透明,责任清晰。尤其适合中小团队或跨部门协作,能有效打破信息黑箱,让所有人对齐在同一张“图”上。

本机暂存
IT 后端/ 2012-08-20 23:42:26 / 累计浏览 2,761

无法忍受国内吝啬的邮箱服务商,自建邮局发送邮件

这篇讲的是作者对国内主流邮箱服务在发信频率、数量和格式上的诸多限制感到忍无可忍,最终选择自建邮件服务器来彻底解决问题的故事。 文章开篇便点明了国内免费或低成本邮箱服务在发信环节的“吝啬”:对每日发送总量、收件人数量乃至单封邮件大小都有严格限制,这对有自动化通知、批量沟通需求的技术用户来说,构成了实际的工作瓶颈。作者通过查阅和对比各家服务商的限制条款,将问题清晰地量化和呈现出来。 核心的解决方案是跳出第三方服务,自建邮局。文章很可能介绍了搭建过程中的关键选择,比如邮件服务器软件的选型、域名的SPF、DKIM、DMARC记录的配置以确保送达率,以及如何规划服务器以规避IP被列入黑名单。作者从亲身体验出发,将自建方案与受限服务的不便进行了直接对比,结论很明确:对于发信需求特殊或频繁的用户,自己掌握基础设施是更自由、更可靠的途径。 文末附带了一个汇总了各家发信限制的链接,这个实用的数据资源让文章的观点有了扎实的依据。整篇文章的价值就在于,它从一个具体的技术痛点出发,不仅指出了问题的根源,更提供了一条可操作的、自主性更强的解决路径。

本机暂存
IT 开发者/ 2012-08-20 23:40:24 / 累计浏览 3,484

脚本语言ymd:介绍

这篇文章介绍了一个叫ymd的新脚本语言,其名字来源于“Year-Month-Day”的缩写,暗示了它与结构化数据处理的紧密关联。 与追求通用性或高性能的传统脚本语言不同,ymd的设计哲学非常明确:它专为“数据处理”这一特定任务而生。作者从现实开发中大量重复的数据清洗、转换和聚合任务出发,剖析了通用语言(如Python、JavaScript)在处理表格或JSON等结构化数据时,虽然功能强大,但语法和库函数往往显得笨重和冗余。ymd的目标就是提供一个更简洁、更贴合数据处理心智模型的环境。 文章详细展示了ymd的核心特点:它拥有一个极简的语法核心,提供了大量针对数据列操作的内置谓词和管道式语法。这意味着你可以像用SQL一样,通过一连串清晰的步骤来描述数据变换流程,例如“筛选-分组-聚合”,而无需编写繁琐的循环和临时变量。此外,ymd对大数据集的惰性求值和内存优化也有特别考量。对于需要快速处理日志、CSV或API返回的JSON数据,又不想引入重型框架的开发者而言,ymd提供了一种更轻量、更专注的选择。

本机暂存
IT 后端/ 2012-08-20 23:38:51 / 累计浏览 2,873

记录一个并发引起的 bug

这篇讲的是作者在Skynet项目中遇到的一个由多线程并发引发的消息处理bug。作者坦言,完全把多线程程序写对是一件非常困难的事,而这次经历让他再次深刻体会到了这一点。文章并没有深入探讨具体的修复细节,而是聚焦于问题的发现与记录本身。 作者从实际开发中遇到的挑战出发,记录下了这个由并发导致的典型问题。这不仅仅是一个技术故障的报告,更像是一份开发者笔记,反映了多线程编程中那些容易遗漏的陷阱和调试的复杂性。字里行间透露出的经验之谈,对于同样在并发领域摸索的开发者而言,或许能带来一些共鸣与提醒——即便是经验丰富的开发者,也需要时刻对并发问题保持警惕。

本机暂存
IT 后端/ 2012-08-20 23:37:36 / 累计浏览 2,120

Skynet 的一些改进和进展

作者近期将重心完全放到了Skynet框架的开发与演进上。作为一款轻量级、高并发的游戏服务器框架,Skynet的持续改进一直是社区关注的焦点。 这篇内容并非泛泛而谈,而是聚焦于框架在实际迭代中发生的数项具体改进。作者从近期的工作出发,分享了在多个方向上的进展,其中既可能包含对核心调度模型的优化,也可能涉及关键模块的功能增强与性能提升。文章以第一手的开发视角,阐述了为何要做这些改动、设计思路如何,以及改进后的初步效果,为理解框架的演进脉络提供了直接线索。 对于关注游戏服务器与高并发系统架构的读者而言,这篇分享提供了宝贵的工程实践参考,展示了如何在一个成熟的开源框架上进行持续优化。

本机暂存
IT 安全/ 2012-08-20 23:35:14 / 累计浏览 4,539

SAE云服务安全沙箱绕过5(强制修改class私有权限)

这篇讲的是如何在SAE云环境中突破安全沙箱限制,强制修改Java类私有权限的具体实践。作者从实际开发中遇到的权限冲突问题出发,深入分析了SAE平台沙箱机制的运作原理,发现其通过类加载器和安全管理器实现了对私有成员访问的严格管控。文章核心思路是借助自定义类加载器,在加载目标类时利用反射技术重写类的访问控制检查,从而绕过默认的安全限制。实现过程中,作者详细展示了如何通过重写`checkMemberAccess`方法,并结合`setAccessible(true)`等关键技术点完成权限修改。实验结果表明,该方法能够稳定地在特定版本的运行环境下生效,但同时也明确指出了其局限性——该技巧依赖于特定的JVM版本和安全管理策略,并非通用解决方案。文章最后强调了这种操作在云安全边界探索中的意义,提醒开发者需谨慎权衡技术研究与合规使用之间的界限。

本机暂存
IT 数据库/ 2012-08-20 23:32:00 / 累计浏览 2,434

Filesort过程

这篇文章深入MySQL源码,剖析了Filesort这一经典排序过程的具体实现。作者从源码阅读出发,清晰地展示了当查询需要排序而索引无法直接满足时,MySQL如何通过Filesort机制完成操作。 其核心在于一套高效的双buffer(sort_buffer)排序算法。文章指出,当数据量较小时,排序在内存中完成;而一旦数据量超出内存限制,系统会分批次将数据写入临时文件,再进行多轮归并排序,最终产出有序结果集。这个过程中,对内存的合理利用和磁盘IO的优化,是实现高效排序的关键。作者对其中“利用堆排序进行多路归并”等实现细节的解读,让我们看到了设计上的巧妙与务实。 通过源码级的拆解,这篇文章将原本抽象的排序过程变得具体可感,不仅解释了Filesort“是什么”,更说清了它“如何高效工作”。对于想理解MySQL查询执行内部机制、优化排序性能的开发者而言,这是一次扎实的源码追踪之旅。

本机暂存
IT 后端/ 2012-08-17 13:21:30 / 累计浏览 1,866

获取文件大小之前最好先读一下这个文件

这篇讲的是一个在Windows开发中容易被忽略的陷阱:使用`stat`函数获取的文件大小可能不可靠。 作者从一个具体场景出发,指出了问题所在——有时通过`stat`得到的文件大小,会与资源管理器中显示的大小或实际读取的大小存在差异。这往往会导致后续的文件读取、内存分配或网络传输逻辑出现错误。文章深入分析了根源,通常与文件系统的缓存、写入后未及时同步或某些特定文件系统的特性有关,使得元数据中的大小信息并非实时准确。 针对这个问题,作者没有停留在发现问题,而是给出了经过验证的解决方案:在依赖文件大小信息前,不妨先实际读取一下文件(哪怕只读取一部分)。这种方法虽然增加了一次I/O操作,却能确保你获得的大小信息与后续操作的真实数据完全一致,从而避免因元数据不准而引发的难以排查的bug。文章最后强调,对于需要精确文件信息的场景,这种“以读取为准”的策略是更稳健的做法。

本机暂存
IT 后端/ 2012-08-17 13:20:11 / 累计浏览 2,833

索引页链接补全机制的一种方法

这篇探讨的是一个具体的技术实现问题:当网站的索引页存在大量缺失的内链时,如何系统性地进行补全。作者从索引页在爬虫抓取和权重传递中的关键作用出发,分析了手动维护的低效与常见自动化方案的局限性。 文章提出的方案核心在于,通过预设的规则库与页面内容分析,动态识别并生成缺失的锚文本与链接。这种方法并非简单全量铺设,而是侧重于补全那些对内容关联性有实际意义的“逻辑断点”,同时兼顾了链接的平滑度和自然度,避免被搜索引擎识别为刻意优化。 从描述来看,该方案在具体实践中平衡了覆盖率与精准度,对于需要精细化运营中大型网站的技术团队,提供了一种可落地的工程化思路,特别是在处理模板化生成的海量索引页时,能显著提升内链结构的完整性和健壮性。

本机暂存
IT 前端/ 2012-08-17 13:18:47 / 累计浏览 3,000

inline-blcok 前世今生

这篇讲的是 display:inline-block 这个常见属性值的深入剖析。作者从它被广泛使用、甚至成为“大街小巷”标准写法的现象切入,指出了那段为了兼容 IE6/7 而出现的经典代码。文章的核心在于带领读者回顾 inline-block 的“前世今生”——它如何从需要 hack 的兼容时代,一步步发展到现代浏览器全面支持。 它不仅仅是一个属性值的简单介绍,而是深入探讨了 inline-block 的运作机制和历史背景。通过理解它的演变,开发者能更清晰地知道为什么在早期需要那些额外的代码,以及在标准已普及的今天,我们更应关注其本身的特性和最佳实践,而不仅仅是复制粘贴兼容代码。对于想从“会用”到“真正理解”的前端开发者来说,这是一次重要的原理回顾。

本机暂存
IT 设计/ 2012-08-17 13:17:55 / 累计浏览 5,232

企业用研二三事

这篇讲的是企业内部用户研究岗位的实践心得与思考。作者没有从理论框架出发,而是直接切入工作日常,分享了从接手一个新项目开始,如何界定研究问题、选择合适的研究方法(如访谈、问卷、可用性测试),再到如何将研究发现转化为产品团队能理解并行动的建议。文章特别提到,在企业环境中做用研,最大的挑战往往不是技术,而是如何平衡研究的深度与业务的节奏,以及如何让“用研”真正影响决策而不只是交付一份报告。 文中结合了具体的项目案例,比如一次针对B端后台效率的调研,作者没有追求大而全,而是聚焦关键路径,通过深度访谈少数核心用户,快速定位了操作流程中的核心瓶颈。这种“小而准”的思路,对于资源有限的企业用研团队很有参考价值。它揭示了企业用研的本质:不是做完美的学术研究,而是用合理的成本,产出能驱动产品改进的、有行动指导意义的洞察。

本机暂存
IT 后端/ 2012-08-17 13:16:05 / 累计浏览 3,840

利用node.js搭建SPDY协议的翻墙服务

这篇讲的是作者如何从翻墙的“痛点”出发,用 Node.js 与 SPDY 协议打造新方案。作者最初依赖 ssh -D,但常遭遇连接中断,即便配置 keep-alive 也难以根治。这让他思考:能否直接走 HTTP 或 SOCKS 协议?核心障碍在于通信的加密与效率。 于是,他将目光投向了 SPDY 协议。文章详细记录了如何用 Node.js 搭建基于 SPDY 的代理服务——它在 TCP 之上实现了多路复用与头部压缩,同时依托 TLS 加密,恰好解决了传统 HTTP 明文传输的安全隐患。作者从环境搭建到代码实现逐步展开,不仅剖析了 SPDY 协议相比 HTTP/1.1 在延迟与吞吐量上的优势,也坦诚对比了与 SSH 隧道在连接稳定性上的差异。最终,这套自建服务不仅运行稳定,更让客户端免于安装额外软件,实现了浏览器原生支持的便利访问。

本机暂存