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

最新文章

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

IT 数据库/ 2010-06-03 13:32:21 / 累计浏览 3,982

oracle查看字符集 修改字符集

这篇文章记录了作者在实际运维中尝试修改Oracle数据库字符集的完整过程与踩坑经历。文章首先清晰讲解了如何通过`nls_database_parameters`、`nls_instance_parameters`等视图查看服务器、客户端和会话的字符集设置,明确了它们之间的层级关系。 核心部分围绕修改字符集展开。作者先尝试了直接的`ALTER DATABASE CHARACTER SET`命令,但遭遇了`ORA-00933`和`ORA-24329`错误。接着,文章通过查询`V$NLS_VALID_VALUES`展示了可用的字符集列表,并尝试了使用`internal_use`关键字进行修改。然而,最终这些在测试环境中并未成功,作者分享了这个“未通过”的结果,并给出了最终的解决方案——重装数据库。 这篇文章的价值在于它真实呈现了字符集修改这一操作的复杂性与风险性,通过具体的命令尝试和错误反馈,提醒读者在生产环境中进行此类操作前务必周全测试与备份。对于遇到类似字符集迁移问题的技术人员,它是一个很好的前车之鉴。

本机暂存
IT 安全/ 2010-06-03 13:31:22 / 累计浏览 5,900

Tencent-ISD组织架构

这篇文章展示了腾讯互联网服务开发部(ISD)在成长期的组织架构设计,核心是解决大型互联网团队在快速迭代中如何保持高效协作与创新的问题。作者从团队扩张、业务复杂度提升的背景出发,详细呈现了ISD如何通过分层与矩阵式结构来应对挑战。 具体来看,架构将团队按职能划分为前台、中台与后台,并通过项目经理与产品经理进行横向串联。前台团队专注用户体验与敏捷响应,中台提供通用能力与稳定性保障,后台则负责底层架构与运维。这种设计的巧妙之处在于既明确了各单元的职责边界,又通过横向协作机制避免了“部门墙”,使得资源能够根据业务优先级灵活调度。 从呈现的结构图可以看出,这种架构强调技术决策的集中性与项目执行的分散性相结合,在当时有效支撑了多条业务线并行的开发需求。对于面临类似规模瓶颈的技术团队,其设计思路在平衡效率与专业化方面提供了可参考的模型。

本机暂存
IT 后端/ 2010-06-03 13:30:06 / 累计浏览 2,018

Linux一些页的东西

这篇从Linux内存管理中一个常见却容易混淆的概念切入:Page cache与Buffer cache的关系。作者开篇即点明,许多开发者习惯将两者并列讨论,但实际上它们存在明确的包含与交互层次——Page cache是更上层的抽象,它完全涵盖了Buffer cache;在现代Linux内核的实现中,所有的磁盘I/O操作在内存层面都统一经由Page cache进行管理,内存子系统不再直接与Buffer cache对话。 这种设计巧妙地将文件系统缓存与块设备缓存进行了整合,简化了内存管理的复杂度。文章用清晰的逻辑梳理了这一演变,帮助读者理解为何我们在查看系统内存使用时,Buffer cache的数值会包含在Page cache之内。理解这一点,对于准确分析系统性能、解读`free`命令输出等日常运维场景,能提供一个更坚实的底层认知基础。

本机暂存
IT 设计/ 2010-06-03 13:29:18 / 累计浏览 2,500

简洁的定义

这篇文章从一个常见但模糊的概念切入:什么是“简洁”?作者没有停留在感觉层面,而是尝试给出一个可操作的定义:简洁是使用最少的元素,有效地满足功能性要求。 定义背后源于实际困惑。我们常讨论简洁,但若对基本概念理解不一,执行和评价就会跑偏。文章举了两个具体例子:将博客所有文字(标题、正文、链接)统一为5号黑色宋体,看似去掉了字体和色值的“冗余”,实则破坏了信息层级,效果很差;另一个是Windows Phone 7的极简设计,它本身是一种明确的设计取向,但如何评价其简洁是否成功?这些例子说明,没有清晰的衡量标准,我们很容易陷入“为简而简”的误区。 因此,作者在提出定义的同时,也引出了更深层的思考:评价简洁是否合理需要什么标准?使用“简洁”原则的前提条件又是什么?这篇短文的价值,不仅在于给出一个定义,更在于它指出了概念清晰化对于技术实践与评价的必要性。

本机暂存
IT 安全/ 2010-06-03 13:27:37 / 累计浏览 2,694

Flash应用安全规范

这篇讲的是Flash应用开发中那些容易被忽视的安全隐患和对应的防护规范。文章没有泛泛而谈,而是直接切入实际场景,比如在内容加载、跨域通信和本地存储这几个Flash应用常见的交互环节里,详细剖析了攻击者可能利用的漏洞路径——例如如何通过精心构造的SWF文件实现跨域数据窃取,或者利用本地共享对象(LSO)持久化存储敏感信息。针对这些风险,文中给出的规范相当具体,从推荐使用的安全API(比如严格的`Security.allowDomain`策略)、到配置文件的正确写法,再到运行时环境应如何沙盒化配置,都提供了可操作的步骤。尤其值得注意的是,作者强调了安全必须内建于开发流程初期,而非事后补救,并列举了几起因忽视这些基础规范而导致的真实数据泄露案例作为佐证。对于仍需维护Flash遗留系统或研究客户端安全的技术人员来说,这份提炼出的检查清单和架构层防护建议,是一份可以直接落地的安全加固指南。

本机暂存
IT 开发者/ 2010-06-03 13:26:32 / 累计浏览 2,637

我个人比较受用的一些习惯

这篇讲的是作者在长期实践中总结的、显著提升个人效率的几项工作习惯。他从最核心的一点“长期的任务,要尽早开始”切入,指出这不仅能化解拖延,更能让我们在项目初期就拥有应对不确定性的缓冲期。作者强调,提前启动并非单纯为了赶工,而是为了将庞大的目标拆解为更具体的思考和行动步骤,从而让后续推进更为从容。 文中可能还探讨了其他习惯,例如如何通过明确的个人系统来管理知识流,或是设定“不被打扰时间”来保障深度工作的质量。这些习惯并非高深的理论,而是源于对自身工作节奏的细致观察和调整,具有很强的可操作性。作者的分享,为技术人如何构建可持续的个人生产力体系,提供了切实的参考路径。

本机暂存
IT 后端/ 2010-06-03 13:21:36 / 累计浏览 6,354

python中的socket代理

这篇讲的是Python中Socket代理的实现与适用场景。作者从Python自带的HTTP代理功能说起,指出urllib2等库虽能便捷设置HTTP代理,但面对更底层的网络通信需求,就需要转向Socket代理。文章对比了两者的核心差异:HTTP代理工作在应用层,主要处理特定协议的请求转发;而Socket代理则在传输层提供通用代理能力,能处理TCP/UDP等更广泛的流量。 这种底层特性使得Socket代理在需要代理原生TCP连接、开发自定义网络工具或进行特定协议穿透时成为必要选择。文中通过代码示例与原理说明,揭示了Socket代理如何通过监听和转发原始数据包来实现这一过程,并探讨了其在实际开发中的典型应用。 对于需要处理非HTTP协议或追求更高控制自由度的开发者而言,理解Socket代理的实现机制能帮助他们在项目中做出更合适的技术选型。

本机暂存
IT 后端/ 2010-06-03 13:20:48 / 累计浏览 3,629

Http 协议中ETag的用法

这篇讲的是在大型网站负载均衡架构下,ETag生成机制可能带来的一个意外问题。 作者从一次偶然观察切入:在F5等设备实现的集群环境中,同一个未修改的资源被两次请求时,其HTTP头中的ETag值竟然不相同。这引发了对ETag算法稳定性的怀疑——很可能在计算哈希时,混入了与特定服务器实例相关的因子(例如文件修改时间戳在不同real server上可能因同步延迟存在微小差异)。为验证猜想,作者查阅了Apache文档,最终确认了ETag的默认生成策略确实包含文件的inode、修改时间等服务器本地信息。 这篇文章的价值在于,它揭示了在分布式系统中,一个看似标准的HTTP协议特性(缓存验证)可能因实现细节而产生非预期行为。对于架构师和运维工程师而言,这是一个提醒:在设计高可用架构时,需要审视像ETag这类“黑盒”机制的底层一致性,以确保全局缓存策略的有效性。

本机暂存
IT 开发者/ 2010-06-03 13:18:42 / 累计浏览 3,150

产品经理怎么和领导打交道

这篇文章讲的是产品经理如何与领导有效沟通的现实挑战。作者从日常工作的真实场景切入,指出很多产品经理只专注于需求和项目本身,却忽略了“向上管理”这一关键能力。文章的核心观点是,与领导打交道并非简单的“听指令”或“拍马屁”,而是一门需要主动学习和练习的专业技能。 作者建议产品经理首先要转换视角,尝试去理解领导的决策框架和关注点——他可能更关心业务影响、资源投入与风险。基于此,沟通方式也需要调整,例如汇报时用结论先行,辅以关键数据和简要过程;提出问题时,同时带上自己的思考和建议方案。文中还强调了“建立信任账户”的重要性,通过持续提供靠谱的交付和清晰的进展同步,来积累双方协作的信用基础。 整篇文章没有空谈理论,而是给出了诸如“如何预判领导的顾虑”、“怎样让反馈更易被接受”等具体可操作的思路。对于那些希望改善与上级协作效率、减少不必要的沟通内耗的产品经理而言,这篇文章提供了一套务实的方法论参考。

本机暂存
IT 开发者/ 2010-06-03 13:17:33 / 累计浏览 4,006

谦虚一点去工作

这篇从一个常见的职场现象切入:许多技术人初入团队时谦逊勤恳,但随着技术熟练和贡献增加,心态容易悄然转变。文章并未停留在现象描述,而是深入剖析了这种转变背后的风险——它可能让你错过关键反馈,陷入“能力陷阱”,甚至影响团队协作的信任基础。 作者的核心观点明确:在技术领域,“知道”与“做到”之间存在巨大鸿沟,而保持谦虚是持续填补这道鸿沟的关键心态。文章结合了代码评审、故障复盘等具体场景,说明了“过度自信”如何导致方案盲点或沟通壁垒。它指出,真正的专业自信来自于对自身认知边界的清晰了解,以及向同事、用户甚至代码本身保持开放和学习的能力。 对于正处于快速成长期的技术人,这篇提供了一个及时的提醒:技术能力的提升需要与心智成熟同步。它给出的不是空泛的“要谦虚”口号,而是引导读者思考如何在日常实践中——比如主动寻求不同意见、坦然接受“我不知道”——来构建这种宝贵的品质。

本机暂存
IT 后端/ 2010-06-03 13:15:43 / 累计浏览 3,255

nginx的upstream目前支持5种方式的分配

这篇讲的是Nginx upstream负载均衡的五种核心算法及其适用场景对比。文章从最基础的“轮询”默认策略讲起,清晰列出了权重、ip_hash、fair和url_hash这几种常见的分配方式。它不仅说明了每种算法如何工作,更关键的是点出了彼此间的差异:比如权重如何灵活分配流量,ip_hash怎样确保会话稳定,而fair则能动态考量后端服务器的实时负载。作者把这些技术点放在实际场景里分析,比如面对静态资源分发、有状态服务或是请求分布不均的情况时,哪类算法能更好地解决问题。这种对比让运维或开发人员在配置时,能跳出“默认选项”,根据业务需求做出更精准的选择。

本机暂存
IT 后端/ 2010-06-02 23:09:14 / 累计浏览 2,790

PHP类型转换相关的一个Bug

这篇讲的是PHP开发者可能从未深思、却时刻影响着代码行为的底层机制。作者从PHP数组索引的一个经典困境切入:数字`1`和字符串`"1"`明明是同一个键,却可能引发混乱。为了解决这个问题,PHP在底层引入了`zend_symtable_*`系列函数来统一管理数组操作。 文章并未停留在表面现象,而是带读者进入了PHP内核的实现世界。核心的巧妙之处在于,PHP通过一个“对称表”机制,在数组层面自动将可视为数字的字符串键转换为整数键,从而确保了`$arr[1]`和`$arr["1"]`访问的是同一个位置。这个转换过程由一系列专门的内核函数严格管控,既保证了逻辑一致性,又维护了性能。 通过剖析这个看似微小的内部设计,文章揭示了语言设计者在处理类型系统与数据结构交互时的周密思考。理解它,能让我们更清晰地认识PHP数组行为的根源,避免在复杂逻辑中因索引类型不一致而产生难以察觉的Bug。

本机暂存
IT 数据库/ 2010-06-02 23:06:55 / 累计浏览 2,819

Mysql 5 数据库 中文乱码问题的解决

这篇讲的是作者在迁移自己网站时,遇到的一个非常经典且恼人的坑:MySQL 5数据库中的中文乱码问题。这几乎是每个中文开发者或运维都绕不过去的“必修课”,但每次碰上都让人头疼。 文章的核心直指问题的根源——字符集设置的不统一。作者没有停留在表面现象的描述,而是深入到数据库连接、服务器端、数据库本身以及数据表结构等多个层级,去检查和统一编码。他清晰地指出,在迁移或新建环境时,一个字符集配置的疏忽,就会导致数据“写得进去,读不出来”的窘境。 文章的解决思路非常实用,它引导读者一步步检查关键配置文件(如my.cnf)中的`character_set_server`、连接字符集等参数,并确保它们与应用程序的编码保持一致。对于很多被乱码折磨的开发者来说,这种按图索骥式的排查指南,比空谈理论要管用得多。 作者通过解决自己网站迁移中的实际问题,把一个普遍的技术痛点和对应的解决方案讲得透彻明白,对于正在或即将处理类似数据迁移任务的朋友,能提供切实的帮助。

本机暂存
IT 设计/ 2010-06-02 23:05:14 / 累计浏览 1,987

产品经理怎么和产品经理打交道

这篇探讨的是产品经理团队内部的协作困境。作者从一个常见却少被拆解的问题切入:当产品经理们需要彼此配合时,如何避免陷入“各自为政”或“互相甩锅”的局面。 文章的核心观点在于,产品经理之间的冲突往往源于角色边界模糊和目标不一致。作者通过具体场景分析指出,有效的协作需要建立清晰的沟通协议——比如在需求评审前明确各方的权责清单,或在项目启动时共同对齐核心指标。这些机制的目的不是增加流程,而是减少因理解偏差带来的内耗。 文中还提到一个容易被忽视的细节:产品经理在跨团队协作时,容易不自觉地使用技术或业务术语,这反而会阻碍同伴间的理解。作者建议采用更结构化的表达方式,用可视化的流程图或用户故事地图来同步信息。 对于读者而言,这篇文章的价值在于提供了可立即上手的协作工具。比如设计一个简单的“需求交接清单模板”,或是建立定期的跨产品线同步会。这些方法能帮助产品经理们将协作从依赖个人默契,转变为可持续的系统性能力。

本机暂存
IT 设计/ 2010-06-02 23:00:51 / 累计浏览 2,444

JavaScript Creating Objects Other Pattern

这篇梳理总结了JavaScript中多种常见的对象创建模式,包括工厂模式、原型模式、构造函数模式、混合模式以及动态原型模式。作者从一个系列日志的终章视角出发,并非简单罗列,而是带着读者回顾了这些模式各自的演进与侧重点。 文章的核心价值在于清晰对比了这些模式的差异:工厂模式如何通过函数封装实现创建过程但无法识别对象类型;原型模式如何实现属性共享但存在引用类型属性被所有实例共享的弊端;构造函数模式如何解决类型识别问题却又面临方法重复创建的浪费。最后的混合模式与动态原型模式,则展示了社区为融合优点、规避缺点而做出的实践探索。 作为系列日志的收尾,这篇文章将分散的知识点串联成线,帮助开发者建立系统认知,理解在不同场景下为何要选择特定的对象创建方式,从而为写出更优雅、高效的JavaScript代码提供清晰的设计思路参考。

本机暂存
IT 前端/ 2010-06-02 22:59:09 / 累计浏览 6,359

jQuery中getJSON跨域原理详解

这篇讲的是作者在开发一个浏览器工具时,为了实现“获取页面短网址”功能,深入剖析了jQuery中getJSON方法实现跨域请求的原理。 文章并没有停留在API的简单调用层面,而是直接点出了Web安全的同源策略这一根本限制。接着,它解释了getJSON背后实际依赖的JSONP技术是如何巧妙地绕过这一限制的:通过动态创建