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

技术文章

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

技术文章精选

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

最新文章

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

IT 其他/ 2012-02-01 18:03:44 / 累计浏览 6,693

SecureCRT for Mac OS X 6.7.3破解方法

最近从windows阵营转到MAC阵营,在windows上面用习惯的软件想搬到MAC上面,就拿SecureCRT来说,是我用的比较频繁的软件之一。简介:SecureCRT是一个可以与PuTTY相媲美的TELNET基于文本形式的商业化远端管理工具,它是一个终端仿真程序,是连接远程运行UNIX 和VMS系统主机的理想选择。它支持VT100、VT102、VT220和ANSI终端仿真,包含基于文件的脚本和简单易用的工具条等。
安装和破解方法:从官方下载安装 6.7.3 版本的SecureCRT并安装。(直接next就ok,不多说)破解:A:在打补丁前需要手动在终端执行以下命令:
sudo chmod -R 777 /Applications/SecureCRT.app/Contents/MacOSB:点击\"select Application\"选择已经安装好的SecureCRT.app或者直

IT Java/ 2012-02-01 18:03:07 / 累计浏览 5,235

Java应用运维

对于互联网产品或长期运行的产品而言,运维工作非常重要,尤其是在产品复杂了以后,在这篇blog中就来说下Java应用的运维工作(ps:虽然看起来各种语言做的系统的运维工作都差不多,但细节上还是会有很多不同,so本文还是只讲Java的)。

IT 奋斗/ 2012-02-01 18:02:18 / 累计浏览 1,567

谈开会

这是一篇全无用处的学术性文章。春节前发了条关于开会的微博,引来吐槽几百条,激情控诉开会[查看吐槽现场]。我还可以偷偷告诉你们两件事情:1、那些组织会议的人,很多也厌恶开会,开会开到想吐2、很多厌恶开会的人,升任管理岗位或更换工作环境后,很快便积极组织各种会议这是斯德哥尔摩综合症吗?分析一下开会的积极意义。首先对开会作一个定义,把少于4人的讨论排除在外,否则株连太广。其次,先不要搞有罪推定,假设这次会议的出发点是好的,也是有必要的,我们为什么开会?★集体公告开会,几乎是唯一有效的,重要信息的公告途径。否则靠一个个打电话?太没效率。靠IM?太不正式。靠Email?对方耍赖的时候来一句“我没注意到……”你就抓狂了。只有会议,才能保证重要信息被参加者及时收到。★共同讨论如果有件事情需要群策群力,大家都参与讨论并统一观点,怎么办?最佳的解决方法是开会。它能在短时间内,让所有人集中注意力在这一件事情上

IT 系统架构/ 2012-02-01 18:01:34 / 累计浏览 3,071

关于返回 Null 值的问题

我总感觉一个方法返回null值有问题。当读了Misko Hevery关于how to think about OO的博客文章后,又让我想起这个问题。 我感觉返回null值是有问题的,它大量的被使用在一个方法有不同的返回类型时。简单的用谷歌搜索一下“returning null”,你就会发现有建议把返回类型做成一个null对象。返回一个Null对象在某些情况下是合适的,但并不适合当你需要向客户端传送两种不同的东西的情形。用Misko重构的一段代码来说明这个问题。

IT 信息和交互/ 2012-02-01 18:00:19 / 累计浏览 1,790

注意力与交互设计

以人为本的设计,不能不考虑普通人在一般任务执行中的耐受力问题。因为人的精力有限,再强大的需求,无力去完成也是枉然。精力的有效转化率,是衡量交互设计品质的重点。 1.公式 精力一般由脑力和体力构成。针对互联网产品,脑力居前(非生产类网站的体力消耗很低)。而脑力的组成又分为注意力、理解力和记忆力。本文将尝试以注意力为例分析交互设计的特点和注意事项。 注意力本身可以集中、分散和转移。集中一般出于明确的需求、潜在的兴趣;分散则由于信息干扰和不可控的时间;转移一般发生在需求探索阶段。 以网站信息结构内的各元素为单位,加上每个页面的所有视觉元素,可以得到网站总的注意力“项”。用户就是利用这些项去满足自己的需求,交互设计则是这些项的描绘者、组织者。如果假设注意力有限,那么每个项分享到的注意力应该是固定值。加上因为个体差异,兴趣和需求的等级不同,便得到了以下公式 注意力转化率计算公式 其中除了“需求强度”

IT PHP/ 2012-02-01 17:36:46 / 累计浏览 2,047

使用exit(-1)为什么得到255退出码?

今天有人在微博上问了一个问题, 使用: string exec ( string $command [, array &$output [, int &$return_var ]] ) 调用一个程序, 程序退出-1, 但是PHP得到的为什么是255?

IT 算法/ 2012-02-01 17:30:53 / 累计浏览 2,571

Riak Core说明

riak_core是一个单独的OTP应用,提供了所有必须的服务,以完成一个现代化的、表现良好的分布式应用。riak_core开始于Riak的一部分。当代码在建立各种分布式应用普遍有用时,我们决定重构并且分离出来核心部分,使其便于使用。 分布式系统是复杂的,riak_core可以满足这些大量复杂的需求。在深入代码之前,我将分离这些需求为明显的分类,且给出每项的概况。 注:如果你是急性子,想跳过后面的直接读代码,你可以通过hg或者git检出riak_core的代码。 节点存活 & 节点关系 riak_core_node_watcher是负责反馈riak_core_cluster内部节点状态的进程。它使用net_kernel有效地监控了许多节点。riak_core_node_watcher也有能力将一个节点按程序预定踢出clus

IT 发现/ 2012-02-01 17:29:44 / 累计浏览 4,318

你从未听说过的一种编程方式

下面是一系列的动作: 从小屋里拿出耙子,用它把院子里的树叶堆起来,然后把耙子放回小屋。 飞到西雅图,看风景,然后飞回。 把钥匙插进钥匙孔,打开,然后取出钥匙。 点亮你的手机,查看时间,然后把它置回睡眠状态。 看到这些模式没?你做一种事情,然后做另外一种事情,然后又撤销你做的第一件事情。或者用更精确的说法,这最后的一步是第一步的反向操作。一旦你认识到这种模式,你会发现它无处不在。拿起茶杯,喝一口茶,放回茶杯。同样,在程序代码里有到处都是: 打开一个文件,读取内容,关闭文件。 分配一段内存,用它做一些事情,释放它。 把内存地址内容加载到寄存器,修改它,然后存回内存。 虽然这很容易解释,也很容易举出例子,但想实现它却不那么容易。

IT 其他/ 2012-02-01 17:29:32 / 累计浏览 2,578

puppet手册之建立软件安装源

[导读] 本文是接着puppet cookbook系列中文翻译文档而来,本小节的主要的内容是 从第三方软件源安装软件,以及如何建立软件安装源,例如:centos系统的 yum 源

IT 互联网/ 2012-01-29 20:57:42 / 累计浏览 1,907

游戏收费方式的一点思考

由于在筹备做新的项目,所以关于网络游戏方面的讨论,在朋友圈子中多了许多。前几天和投资人吃饭,说起前几年盛大提出所谓免费游戏的策略转型,问道有没有可能在未来几年出现新的收费模式。从这个话题引开,饭桌上我跟叮当讨论了很久。 回想那一年,所谓免费游戏之风逐步侵蚀中国网络游戏市场之时,网易的开发团队起初是有所抵触的。我刚到杭州不久,远离广州的开发团队,静心思考了许多。所谓公平的游戏,我想我比大多数人都在乎。把玩游戏变成一个金钱投入的游戏,我是万般不愿意的。但我相信道具收费的方式有它内在的逻辑。实际上,在网易成熟的时间收费游戏,梦幻西游中,点卡交易系统早就存在,并良性运作了很久了。许多玩家已然在游戏中花掉了远远超过时间收费收取的金钱。 那段日子,记得 wding 和我讨论过道具收费的问题。我想了很多谈了很多。后来,wding 希望我回一趟广州,把我的想法和广州的策划同事们分享一下。我便去了趟广州

IT 算法/ 2012-01-29 20:57:23 / 累计浏览 4,853

Ameba , 一个简单的 lua 多线程实现

几个月以前,在我在 blog 上曾谈及 Lua 5.2 的改进。它可以用来实现抢占式多线程 。 周末休息,我把这桩事挖出来娱乐一下,花了一整个晚上做了实现。把 lua 的每个线程锁定在独立的 lua state 中,强迫线程之间通过消息管道的方式通讯。经过测试,Lua 5.2 每个独立的 state 占用的内存很小。通过自定义 alloc 函数可以测算出,一个干净的 32bit state ,不含任何库函数时,占用内存量在 2K 以下(1726 bytes)。如果加载基本库,也仅仅占用不到 4K (3265 bytes)。若把所有 lua 官方标准库加载进来,才会上升到 10K 以上(12456 bytes)。 对于 luajit 2 ,这个基础开销会大一些,最小开销也在 10K 左右 (8058 bytes) 。加上 ffi 达到 30k (31605 bytes)。不过 ffi 可

IT 信息和交互/ 2012-01-29 20:56:59 / 累计浏览 2,710

浅析手机Web App的交互设计

HTML5为提高手机网页的体验提供了诸多的可能性,交互效果越来越接近原生App,故而成为Web App,有望将APP功能引向浏览器,让移动平台的竞争由系统平台转向了浏览器之间。 Web App比起原生App和wap有着自身的优缺点,先简单了解下其特点,掌握设计趋势,也便于以后在设计中应用。 离线存储 离线存储的意思是第一次访问是下载网页,以后在无网络的情况下也可以使用。一个离线应用程序就是一个URL列表–HTML,CSS,JavaScript,图片,或者其他类型的资源。访问时探测到服务器列表的缓存名单时,会触发下载事件,根据名单下载指定的文件存储到本地。 在下载的同时,浏览器将会周期性的触发进度事件,此事件包含了诸如多少文件已被下载,多少文件仍然处于下载队列等信息。当缓存名单中所有列出的资源被成功下载后,浏览器触发下载完成事件。 当再次访问时,浏览器会再次检查网站的缓存名单

IT 网络系统/ 2012-01-29 20:55:50 / 累计浏览 2,725

5代防火墙

Cissp AIO说防火墙已经发展了5代,估计很多防火墙专业人士都不太明白是怎么回事。对专业人士来说,拿cissp证,首先要保证自己掌握的术语能和业界保持一致,否则就会范概念性错误 1st generation:  packet filtering,包过滤防火墙 2st generation:  application-level proxy,应用代理,这里特指用户空间的代理 3st generation:  circuit-level proxy,电路级代理,这里特指socks代理,这个代理和上面那个代理的区别是    这个代理是和应用无关的,不需要了解应用细节,任何应用都可以用。早期有很多socks代理,比如sygate之类    的,现在很少看见了 4st generation:  stateful,状

IT 设计思想/ 2012-01-29 20:55:36 / 累计浏览 2,269

胖胡斐说淘宝促销之一:促销之“商”

这是一个系列的文章,都以【shang】为音来阐述。 首篇命名【商】,是从淘宝的角度出发,阐述促销的想法,促销的道理和道路。 首先说好,这不会是一组给淘宝歌功颂德的文章,淘宝的好我不用说,我对淘宝的感情更不用再多去表达。在这里,我只是表达一些自己的看法,对需要的人必要的帮助。 淘宝商城2011年的双十一继续辉煌。所有的数据中我最看重一个,商城和C2C市场的比重:达到了3:2,这才是历史性的。商城2008年上线的时候,马总说,他认为3年之后B2C和C2C的比例是6成和4成,当时所有人觉得很不可思议却万分憧憬。没想到现在真的达到了,虽然只有一天。 淘宝网C2C市场没有可能一直看商城大口吃肉,自己连口汤都喝不到,所以他们必须做出点事情来,让大家知道淘宝很强大,所以,去年有了“双十二”,这不,关于这个活动的宣传很快会占据我们能看到的所有媒体。 同时,我们的卖家们再次开始疯狂。拿我们蘑菇街的团购来说,

IT 其他/ 2012-01-29 20:55:01 / 累计浏览 1,607

很容易忽略的ETS表个数限制问题

最近经常碰到ets表使用的数目超过系统的限制导致Erlang应用异常的案例。 比如说神锋同学报告说在ssh模块里面,最多只能打开500个左右链接,系统空闲的很,但是无法继续加大链接。 浩庭同学报告说mnesia的事务只能开1千多,多了就上不去了。这些问题看起来没有关联。但是其实和ets都有很大的关系,而且会报system_limit错误。

IT 算法/ 2012-01-29 20:53:45 / 累计浏览 2,307

MMORPG 中场景服务的抽象

MMORPG 中,场景信息同步是很基础而必不可少的服务。这部分很值得抽象出来,专门做成一个通用的服务程序。 此服务无非提供的是,向有需求的对象,同步场景中每个实体的状态信息。那么,我们分解需求,可以看到两点,一是提交状态,二是同步状态。 每条状态信息其实是由三部分构成,状态对象名(key)、状态值(value)、时间。 玩家、NPC、场景中的可变物品,其实都有可改变的状态。比如对象的位置坐标是最常见的状态。其它的状态还有玩家或 NPC 做的动作,玩家离线,上线,等等。可以有若干数据源向这个服务提供数据,如果借用 zeromq 中的模式的话,这个服务应该使用一个 PULL socket 收集数据。它获取从不同数据源 PUSH 来的,key-value 。然后打上时间戳,储存在内存中。 这个服务另外提供一个发布服务,向所有订阅者广播其收到的状态改变信息,每条信息包括推送来的 key-

IT JavaScript/ 2012-01-29 20:53:26 / 累计浏览 1,488

javascript的configuration/interface变换

前言前端由于浏览器的发展与标准的更新, 为使不同浏览器使用dom的方法兼容,使得我们开发者写脚本通常到处都是if(browser.ie)或者if(browser.version<7)随处可见的分支判断.我把这种状况为以下几个层次/状况:1.无需兼容,写的都是业务层次代码2.有兼容,尽量可以通过非hack/hook方式去做到兼容处理.3.有兼容,最好是写完兼容层次,程序继续到通用处理.4.有兼容,需要用很多if去判断的兼容.业务者实际上看到的就是第一种状况.而对于前端框架代码中,由于没有规范,约束, 所以经常在维护代码中很苦恼.我们经常在第四点上苦恼.问题1.例如我们常遇到的兼容问题, 请尝试写一个Style.get(element, 'opacity')方法.是不是该在Style.get里实现加入if是IE.而且<10之类的判断.2.focusin,onmous

IT 系统运维/ 2012-01-29 20:50:17 / 累计浏览 4,190

storm集群的监控

所谓兵马未动,粮草先行,准备将storm用在某个项目中做实时数据分析。无论任何系统,一定要有监控系统并存,当故障发生的时候你能第一个知道,而不是让别人告诉你,那处理故障就很被动了。 因此我写了这么个项目,取名叫storm-monitor,放在了github上 https://github.com/killme2008/storm-monitor 主要功能如下:1.监控supervisor数目是否正确,当supervisor挂掉的时候会发送警告。2.监控nimbus是否正常运行,monitor会尝试连接nimbus,如果连接失败就认为nimbus挂掉。3.监控topology是否正常运行,包括它是否正常部署,是否有运行中的任务。 当故障发生的时候通过alarm方法警告用户,开放出去的只是简单地打日志。因为每个公司的告警接口不一样,所以你需要自己扩展,修改alarm.clj即可。我们这儿就支

IT 其他/ 2012-01-29 20:48:29 / 累计浏览 24,836

安全测试与渗透测试区别

安全测试不 同于渗透测试,渗透测试侧重于几个点的穿透攻击,而安全测试是侧重于对安全威胁的建模,系统的对来自各个方面,各个层面威胁的全面考量。安全测试可以告诉 您,您的系统可能会来自哪个方面的威胁,正在遭受哪些威胁,以及您的系统已经可抵御什么样的威胁。当然,安全测试涵盖渗透测试的部分内容。安全测试与渗透 测试的区别主要在:渗 透测试考虑的是以黑客方法,从单点上找到利用途径,证明你有问题,帮助客户提高认识,也能解决急迫的一些问题,但无法也不能去针对系统做完备性的安全测 试,所以难以解决系统自身实质性的安全问题,所以提供渗透测试的厂商一般都是自己买什么防护设备,以自己防护设备针对