IT技术博客大学习 共学习 共进步

技术文章

精选技术长文、实践记录与系统化阅读

技术文章精选

低噪声、高可扫读;标题、摘要、来源、标签一目了然。

最新文章

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

IT Linux/ 2012-01-29 20:46:24 / 累计浏览 2,149

什么是导出(export)环境变量

1. 执行如下命令:aVar=theValueecho $aVar不会输出theValue2. 执行如下命令:export aVar=theValueecho $aVar输出: theValue说明:如果没有export, 则,只作用于当前的命令; 如果export了,则相当于修改了当前shell的环境3. 比较如下两个命令第一个命令中的aVar是当前shell中的环境变量,因为没有使用export,所以只为空;第二个命令(注意:使用的是单引号)中的$aVar是eval进程中的环境变量,而前面没有使用export,所以,只作用于eval进程,所以aVar就有值了

IT 系统架构/ 2012-01-29 20:45:17 / 累计浏览 2,428

支持快速迭代的LAMP解决方案 ――贴吧LAMP解决方案

摘要:天下武功,唯快不破,互联网竞争的利器就是快!且听贴吧LAMP解决方案如何全面支持快速迭代。关键词:LAMP,快速迭代领域:架构总概贴吧是功能性产品,唯快不破是永恒的准则,这一特点决定了快速迭代是需要解决的关键性问题。快速迭代,分解开来有如下部分:开发阶段,快速开发;测试阶段,包含了环境快速搭建、自动化测试工具;运维阶段,包含了集群管理技术、自动化运维工具;同时,这三方面的工作需要一个整体性的解决方案衔接起来。早期的贴吧,作为一个高性能社区,功能相对单一,全部采用C语言开发,系统可重用程度低,开发、测试效率低,运维方面的积累也很少。为了提高效率,开始尝试LAMP架构,经过几年的发展,贴吧已全部迁移到了LAMP。随着产品规模急剧膨胀,30+子系统,150+模块,500+机器,10亿+流量,在LAMP架构方面积累了很多经验,逐渐形成了快速迭代的一体化方案。如下图所示: 该解决方

IT 系统架构/ 2012-01-29 20:44:38 / 累计浏览 2,493

CC-lib无线跨平台web页面自动化生成技术的设计实现

摘要:前端开发通常需要开发多套web页面代码,从而为不同的移动终端浏览器开发不同的web页面,例如低端手机需使用wml,高端手机则支持html和javascript等。本文介绍了一种跨平台web页面自动化生成技术,该技术利用php设计了一个中间层(CC-lib),可以屏蔽底层的web展示语言的差异,程序运行时动态生成各个UI组件的wml/xhtml/html代码,从而可以有效降低前端开发人员的页面开发维护成本。关键词:浏览器兼容,跨平台,无线,web前端,自动化生成,CC-lib 技术领域:无线,web前端 一、背景在无线领域,通常要为不同的机型,使用不同的编程语言(wml/xhtml/html)编写网页,往往存在下面几个问题:(1)维护3份代码,开发效率低、维护成本高。(2)应用开发人员需要关注不同平台的语言差异,调试、自测繁琐。(3)业务展现逻辑代码和wml/xhtml/h

IT 系统架构/ 2012-01-29 20:44:01 / 累计浏览 1,525

多核学习在图像分类中的应用

1摘要分类在搜索引擎中的应用非常广泛,这种分类属性可以方便在rank过程中针对不同类别实现不同的策略,来更好满足用户需求。本人接触分类时间并不长,在刚用SVM做分类的时候对一个现象一直比较困惑,看到大家将各种不同类型特征,拼接在一起,组成庞大的高维特征向量,送给SVM,得到想要的分类准确率,一直不明白这些特征中,到底是哪些特征在起作用,哪些特征组合在一起才是最佳效果,也不明白为啥这些特征就能够直接拼在一起,是否有更好的拼接方式?后来了解到核函数以及多核学习的一些思想,临时抱佛脚看了点,对上面的疑问也能够作一定解释,正好拿来和大家一起探讨探讨,也望大家多多指点。本文探讨的问题所列举的实例主要是围绕项目中的图像分类展开,涉及SVM在分类问题中的特征融合问题。扩展开来对其他类型分类问题,理论上也适用。关键词: SVM 特征融合 核函数 多核学习 2基本概念阐述 SVM:支持向量机,目前在

IT 系统架构/ 2012-01-29 20:43:25 / 累计浏览 2,473

环境为王-论贴吧环境解决方案

摘要本文列举了当前贴吧线下环境在使用过程中遇到的几个典型问题场景,针对这些问题,从如何维护环境稳定性以及如何提供更好的环境更新体验两个维度,给出了对应的解决方案。通过环境稳定性解决方案,降低了人力的投入,保证了环境的最新,减少了人为因素引入问题,通过技术的手段,保证整个过程自动化、可视化。通过更新方案,给予用户更好地更新体验,提升更新效率和速度,降低了执行机与基准环境之间的耦合性。 关键字基准环境 自动化 监控 稳定性 更新名词解释基准环境:在虚拟机上搭建的一个单机的贴吧全功能环境。该环境包含了贴吧的所有模块,所有模块相关的地址配置(ip、url)均指向本机,是测试开发环境构建的母本。执行机:指rd、qa、fe的开发或者测试机。

IT 算法/ 2012-01-29 20:37:50 / 累计浏览 5,053

一些有意思的算法代码

Keith Schwarz是一个斯坦福大学计算机科学系的硕士研究生。他对编程充满了热情。他的主页上他自己正在实现各种各样的有意思的算法和数据结构,http://www.keithschwarz.com/interesting/, 目前这个网页上有88个(见下面的列表),但这位大哥要干135个,你可以看看他的To-Do List。 从这个列表上,我们可以看到,他从去年7月份就在自己实现这些东西了,我把他实现的这些算法转过来, 一方面我们可以学习一下这些算法和代码,因为很多东西对我来说都比较新,我以前列举过一些经典的算法,算法和数据结构词典,还有可视化的数据结构和算法, 不过感觉都没有这个全。 另一方面我希望这个事可以影响到一些正在学习编程的人。看看别人是怎么学习编程的,希望对你有借鉴作用。

IT 算法/ 2012-01-29 20:36:56 / 累计浏览 2,071

经典证明:不断把凹的部分翻出来,总能把凹多边形变凸吗?

           左图是一个凹多边形,而且凹得相当厉害。作为一个完美主义者,我很难容忍这么一个图形,总想着要把凹进去的部分翻出来,把它还原为一个凸多边形。不幸的是,翻折之后的结果仍然不是凸多边形,图中又产生了新的凹陷。于是,我们想继续把凹进去的部分往外翻,直到整个图形变成凸多边形为止。问题是,这个过程有完吗?换句话说,我们一定能通过有限多步翻折,把凹多边形变成凸的吗?     这个问题有着非常纠结复杂的历史。这个问题最早可能是由数学家 Paul Erd\"os 正式提出的。 1935 年,他在 American Mathematical Monthly 上猜想,经过有限步翻折之后,凹多边形一定能变凸。 1939 年, Béla Sz\"okefal

IT MySQL/ 2012-01-29 20:36:17 / 累计浏览 3,030

MySQL 数据库性能优化之SQL优化

这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础 优化目标 减少 IO 次数 IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当然,也是收效最明显的优化手段。降低 CPU 计算除了 IO 瓶颈之外,SQL优化中需要考虑的就是 CPU 运算量的优化了。order by, group by,distinct … 都是消耗 CPU 的大户(这些操作基本上都是 CPU 处理内存中的

IT 系统架构/ 2012-01-29 20:35:35 / 累计浏览 3,328

相关的 Perl 书籍推荐

这个是 Perl  学习笔记的一部分内容,拆分出来。 Perl 新手到进阶到高手必备书籍 Learning Perl(Perl语言入门)  perl 入门必读,就象别人讲的一周必读 perl 入门 Programming Perl(Perl语言编程) ...

IT 信息和交互/ 2012-01-29 20:34:57 / 累计浏览 1,668

iPad游戏体验之差异化设计

在iPad一代刚出之际绝大多数人都喜欢称其为放大版iPhone。但到目前的iPad2已经再也很难听到这样的说法了。这也就说明这设备已经有存在价值了。它为特定场景赋予了一定服务。在国外的一项统计中显示,人们使用平板电脑最频繁的其中一个功能是:玩游戏。 那iPad游戏会是iPhone的放大版吗?答案固然是否定的。 先来看看iPad平台的特征1024×768像素的大尺寸屏幕支持3G/WIFI模式配备9.7英寸触控屏没有默认的屏幕预期方向允许用户选择外接键盘并替换屏幕虚拟键盘 用户可以应用dock与电脑分享文件 接下来将iPad的游戏作初步研究: 仔细的观察iPad的使用姿势,基本上iPad定位于在沙发上、床上使用的产品,因此我们可以看到9.7英寸屏幕可以为用户带来笔记本电脑的感觉。同时灵敏的触控屏幕和丰富的手势也带来了不错的体验,因此我们都会将iPad放置在腿上或者双手握持状态下来使用。那也就是

IT iOS开发/ 2012-01-29 20:31:18 / 累计浏览 5,697

iOS内存暴增问题追查与使用陷阱

iOS平台的内存使用引用计数的机制,并且引入了半自动释放机制;这种使用上的多样性,导致开发者在内存使用上非常容易出现内存泄漏和内存莫名的增长情况; 本文会介绍iOS平台的内存使用原则与使用陷阱; 深度剖析autorelease机制;低内存报警后的处理流程;并结合自身实例介绍内存暴增的问题追查记录以及相关工具的使用情况; iOS平台内存常见问题作为iOS平台的开发者,是否曾经为内存问题而苦恼过?内存莫名的持续增长,程序莫名的crash,难以发现的内存泄漏,这些都是iOS平台内存相关的常见问题;本文将会详细介绍iOS平台的内存管理机制,autorelease机制和内存的使用陷阱,这些将会解决iOS平台内存上的大部分问题,提高了程序的稳定性;

IT JavaScript/ 2012-01-29 20:29:40 / 累计浏览 2,296

[译]跨浏览器的多点触控与鼠标事件处理

本文主要解释了Web开发者如何通过使用IE10中新引入的pointer事件模型、iOS上的touch事件模型以及W3C标准的扩展鼠标事件模型来编写普适的跨浏览器的触控事件处理代码。 题外话:我很幸运的拥有一台三爽的700T开发者平板。通过它可以很好的体验IE Test Drive中的多点触控demosTouch Effects和Lasso Birds。你可能也注意到了,Lasso Birds在除了IE10以外的

IT 源码分析/ 2012-01-29 20:27:16 / 累计浏览 5,771

Storm源码浅析之topology的提交

最近一直在读twitter开源的这个分布式流计算框架——storm的源码,还是有必要记录下一些比较有意思的地方。我按照storm的主要概念进行组织,并且只分析我关注的东西,因此称之为浅析。        一、介绍    Storm的开发语言主要是Java和Clojure,其中Java定义骨架,而Clojure编写核

IT 系统架构/ 2012-01-29 20:26:27 / 累计浏览 1,551

数据倾斜总结

在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平均值,而由于数据倾斜的原因造成map处理数据量的差异过大,使得这些平均值能代表的价值降低。Hive的执行是分阶段的,map处理数据量的差异取决于上一个stage的reduce输出,所以如何将数据均匀的分配到各个reduce中,就是解决数据倾斜的根本所在。规避错误来更好的运行比解决错误更高效。在查看了一些资料后,总结如下。 1数据倾斜的原因 1.1操作: 关键词 情形 后果 Join 其中一个表较小, 但是key集中 分发到某一个或几个Reduce上的数据远高于平均值 大表与大表,但是分桶的判断字段0值或空值过多 这些空值都由一个reduce处理,灰常慢 group by group by

IT 其他/ 2012-01-29 20:25:53 / 累计浏览 3,372

使用python将Sqlite中的数据直接输出为CVS

对于SQLite来说,目前查看还是比较麻烦,所以就像把SQLite中的数据直接转成Excel中能查看的数据,这样也好在Excel中做进一步分数据处理或分析,如上篇文章中介绍的IP抓取的IP数据。从网上找到了一个将SQLite转成CVS的方法,贴在博客里,供需要的朋友使用.

IT 设计思想/ 2012-01-29 20:23:25 / 累计浏览 1,928

知心怪蜀黍NO.7 媒体的KPI如何设置

我本身是做产品的,对于媒体、社区这方面没有很深了解,但手上产品需要和这些类型的产品合作,希望稍微了解这些产品本身最需要什么,负责人最关心什么,产品思路是如何的。而根据我对您的关注,您至少对社区和媒体都很懂行,希望能得到指教。a资源型媒体,比如视频网站,小说网站b内容型媒体,比如垂直门户c社交型媒体,比如相册,豆瓣,微博我的问题是:对abc分别:1. 产品本身最需要哪些外部资源以及优先级。2. 负责人最关心产品的哪些东西以及优先级,kpi制定的思路是怎样的。首先,很难讲存在社交型媒体这种分类。相册主要是工具,也可以是一个社交组件,基本不具备媒体属性。相册衍生出来的摄影社区,一部分是论坛型社区,另一部分是空间型社区,其媒体属性也不强。豆瓣被分成很多块,如果说它是社交型媒体,首先要看你在讲具体哪一块,很难给整个豆瓣打上标签。而微博嘛,严格上来说是有媒体气场,也有社交属性的产品,是否直接拼在一起说

IT 设计思想/ 2012-01-29 20:23:02 / 累计浏览 2,811

知心怪蜀黍NO.6 设计与运营的思维差异,兼谈知乎

纯银:最近重新看了你的文章《运营时代》,很有共鸣。之前对产品设计与运营的区别分得并不是很清,因为自己所在的岗位并没有明确区分两种类型的工作,从作为产品负责人的角度,凡是与产品有关联的事情都需要关注。现在随着经验的积累和认识的加深,对《运营时代》中提到的相关内容感受更加深刻。其中,你提到“产品设计与运营的思维方式差异甚大,双修不易”。这里想请教一下,产品设计与运营的思维方式差异具体体现在哪里。这两种类型的工作,重点分别是什么,为什么“双修不易”呢?如果这种差异确实很大,且常常无法兼顾,那么让产品设计思维的人去做以运营为重点的产品,或是相反,不论是对产品经理个人还是产品自身的发展都是极大的伤害。原文中提到知乎,知乎的运营确实很出彩,但知乎在产品设计上以quora为原型,按理说应该也达到了较高的水准,那么他在产品设计上还有什么关键的问题要解决呢?从问答社区的定位来看,知乎已经完成了核心的功能,可

IT Apache/ 2012-01-29 20:21:52 / 累计浏览 7,579

.htaccess功能简明教程

.htaccess文件很有用,简单说说吧(可是淡水还是厚颜的加上了简明教程的标题)。 重定向和url重写 一个简单的重定向 Redirect 301 ^old\\.html$ http://localhost/new.html 这是设置一个http状态码为301(永久移动)并把所有访问old.html转向到new.html。使用了正则表达式来匹配访问的页面,后面的url必须是完整路径。 Url重写 RewriteEngine on RewriteRule ^old\\.html$ new.html 第一行打开重写引擎 第二行是重写规则。这样用户访问old.html时实际却是访问的new.html,而且用户对此好吧知情。因为地址栏里依旧显示是old.html。 为了在地址栏显示新的访问地址,我们可以加个f标志在rewriterule语句里。 RewriteRule ^old\\.html$

IT 源码分析/ 2012-01-29 20:21:31 / 累计浏览 6,073

libevent源码浅析: http库

libevent自带了一个http库,用它可以很简单的实现一个http服务器,本文非常简单地分析之. evhttp evhttp库有几个主要的结构体,它们之间的联系非常龌龊: 其中,结构体event, min_heap, evsignal_info, eventop, event_base在前面几篇文章中已经介绍过了,这里不再啰嗦. evbuffer evbuffer用于读或写缓冲,图示为: 和evbuffer有关的外露接口主要是: //从文件读数据到缓冲,读取量为max(howmuch, 4096) int evbuffer_read(struct evbuffer *buf, int fd, int howmuch); //把缓冲写出文件 int evbuffer_write(struct evbuffer *buffer, int fd) evbuffer比较简单,不多介绍. evh