为什么没有人知道天堂长什么样?因为,从来就没有人真地到过天堂… ——我自己
为什么没有人知道天堂长什么样?因为,从来就没有人真地到过天堂…——我自己
潘石屹写了一本书,叫《我用一生去寻找》。我很喜欢这个名字,也很喜欢这句话里面描述的状态。因为我没有仔细读过这本书,所以我可以信马由缰、肆意揣测,这个穷尽一生的东西到底为何物。我认为,一个人可能穷尽一生去寻找的,就包括一种状态,一种对的状态。
有人说,创业成功是一个小概率事件。在成功之前,摆在你面前的有很多很多的未知,很多很多的不确定性。创业者需要作出很多次正确的决策,才能一点点靠近成功,而一次错误的决策,就可能让之前的努力前功尽弃。因为人的理性是有限的,所以成功也就变得很难。我想把这个观点加以推衍,用在另外一个话题上——在人生的某个阶段,一个人要处在一个对的状态,做对的事,同样是一个小概率事件。而他要在人生的多个阶段、不同时期都处在一个对的状态,做对的事,就更难了。可以说,混沌不清、失去平衡、处于混乱,是生活最原始的面目。
因为两个原因:一.一个人从出生到逐渐长大,他的经历、经验永远是相对单薄的。二.我假定了一个人需要不断成长。
...
背景:
某日临近下班,一个同事欲任何类中获取项目绝对路径,不通过Request方式获取,可是始终获取不到预想的路径。于是晚上回家google了一下,误以为是System.getProperty(“java.class.path”)-未实际进行测试,早上来和同事沟通,提出了使用这个内置方法,结果人家早已验证过,该方法是打印出CLASSPATH环境变量的值。
于是乎,继续google,找到了Class的getResource与getResourceAsStream两个方法。这两个方法会委托给ClassLoader对应的同名方法。以为这样就可以搞定(实际上确实可以搞定),但验证过程中却发生了奇怪的事情。
软件环境:Windows XP、Resin、Tomcat6.0、Myeclipse、JDK1.5
发展:我的验证思路是这样的:
1、定义一个Servlet,然后在该Servlet中调用Path类的getPath方法,getPath方法返回工程classpath的绝对路径,显示在jsp中。
2、另外在Path类中,通过Class的getResourceAsStream读取当前工程classpa ...
英文原文:How to Get Startup Ideas,翻译:Jason Zheng
要想获得创业 idea,请别试图把创业 idea 想出来,而是要寻找未被解决的问题,最好是你自己遇到的问题。
最好的创业 idea 通常有三个相同之处:它们是创始人自己要、自己能做出来、别人不认为值得去做的东西。微软、苹果、Yahoo、Google 和 Facebook 都是这样开始的。
问题
为什么说解决你自己遇到的问题如此重要?原因之一是,这保证了问题是确实存在的。你只应该在存在的问题上面花功夫,这点再明显不过,但目前来说,创业公司所犯的最常见的错误就是试图解决一些没人有的问题。
我自己也犯过这样的错误。1995年,我开了家公司,想要把艺术画廊搬到网上。但实情是,画廊压根就没想要走到网上去。那我为什么还在这个愚蠢的主意上面花了半年时间呢?因为我没有关注用户,生造了一个与现实无关的模型,傻乎乎地埋头浪费时间。直到我试图说服用户付费时,我才明白我的模型是错的。即便如此,我还是心有不甘,费了很长的时间试图纠正回来。我自己陷进去了,在开发上花了大量时间,一心想着一定要让他们接 ...
关于大数据,有很多令人兴奋的事情,但使用它也带来了很多困惑。本文将提供一个可行的大数据定义,然后完成一系列示例,让您可以对在大数据领域领先的开源技术 Hadoop 的一些功能有直接的了解。具体来说,我们集中讨论以下几个问题。
什么是大数据、Hadoop、Sqoop、Hive 和 Pig,为什么这个领域有这么多让人兴奋的事情?
Hadoop 与 IBM DB2 及 Informix 有何关系?这些技术可以配合使用吗?
我如何开始使用大数据?有哪些简单的示例可以在单台 PC 上运行?
对于超级的急性子,如果您已经可以定义 Hadoop 并希望马上使用代码样例,那么请执行以下操作。
启动您的 Informix 或 DB2 实例。
从 Cloudera 网站下载 VMWare 映像,并将虚拟机 RAM 设置增加至 1.5 GB。
直接跳到包含代码样例的部分。
VMWare 映像中已内置了一个 MySQL 实例。如果您在没有网络连接的情况下做练习,请使用 MySQL 示例。
对于所有其他人,请继续阅读…
什么是大数据?大数据的数量庞大、捕获速度极快,且可以是结构化的也可以是非结构化的,或 ...
摘要: 虽然自己编码很重要,但是在遇到一个功能时,利用现成的代码不失为一种好方法,或许还会达到事半功倍的效果。但千万不要单纯地“用”,更多地是理解与提升,这样才会进步。
在推动技术变革上,开源运动发挥了非常显著的作用。而Linux成功地将开源转换成商务模式,给广大开源工作者带来了更大的信心和勇气。目前,开源已成为主流,在未来的几年内,它的足迹将会遍布前沿教育、航空航天(如无人驾驶飞机)等许多领域。
借鉴现有的开源项目或开源代码,对于初级开发者来说,不失为一种很好的编程手段,但千万不要单纯地“用”,更多地是理解与提升,这样才会进步。
下面为大家介绍6款源码搜索引擎,让你找到更适合你的源码。
1.Ohloh
Ohloh Code是最大且非常全面的源码搜索引擎,根据FOSS目录来看,其拥有超过10亿行代码且在不断更新,它不仅是免费的,而且还可以通过社区进行免费编辑。通过搜索可以索引到所有的文本文件,并且对43种编程语言都带有语法提示功能。此外,搜索语法非常灵活,可以为你查找到各种不同类型的类。搜索引擎目前不支持正则表达式。
2.Krugle
Krugle是一个开源的搜索门户,基 ...
在eBay,可伸缩性是我们每天奋力抵抗的一大架构压力。我们所做的每一项架构及设计决策,身前身后都能看到它的踪影。当我们面对的是全世界数以亿计的用户,每天的页面浏览量超过10亿,系统中的数据量要用皮字节(1015或250)来计算——可伸缩性是生死交关的问题。
在一个可伸缩的架构中,资源的消耗应该随负载线性(或更佳)上升,负载可由用户流量、数据量等测量。如果说性能衡量的是每一工作单元所需的资源消耗,可伸缩性则是衡量当工作单元的数量或尺寸增加时,资源消耗的变化情况。换句话说,可伸缩性是整个价格-性能曲线的形状,而不是曲线上某一点的取值。
可伸缩性有很多侧面——事务的方面、运营的方面、还有开发的方面。我们在改善一个Web系统的事务吞吐量的过程中学到了很多经验,本文总结了其中若 干关键的最佳实践。可能很多最佳实践你会觉得似曾相识,也可能有素未谋面的。这些都是开发和运营eBay网站的众人的集体经验结晶。
最佳实践 #1:按功能分割
相关的功能部分应该合在一起,不相关的功能部分应该分割开来——不管你把它叫做SOA、功能分解还是工程秘诀。而且,不相关的功能之间耦合程度越松散,就越能 ...
在前面的一些文章中,从实战的角度,讲解了有关memcached的应用、容灾、监控等等。但是缺乏对理论的讲解和原理性的剖析。本文将从理论的角度去介绍,让大家从宏观上对“分布式缓存、nosql”等技术有所了解,以便进一步学习和使用。在构建大规模的web应用时,缓存技术可以说是必备的,学习的必要性不言而喻。
分布式缓存概述
1.1 分布式缓存的特性
分布式缓存具有如下特性:
高性能:当传统数据库面临大规模数据访问时,磁盘I/O 往往成为性能瓶颈,从而导致过高的响应延迟.分布式缓存将高速内存作为数据对象的存储介质,数据以key/value 形式存储,理想情况下可以获得DRAM 级的读写性能;
动态扩展性:支持弹性扩展,通过动态增加或减少节点应对变化的数据访问负载,提供可预测的性能与扩展性;同时,最大限度地提高资源利用率;
高可用性:可用性包含数据可用性与服务可用性两方面.基于冗余机制实现高可用性,无单点失效(single point of failure),支持故障的自动发现,透明地实施故障切换,不会因服务器故障而导致缓存服务中断或数据丢失.动态扩展时自动 ...
Wiki是一种内容管理系统,它的特点包括:多人协作模式、内容逐步积累、网状知识链接。而用作个人知识管理的个人wiki,就利用了内容逐步积累和网状知识链接这两个特点。因为是个人的,所以用不着协作。
怎么开始个人Wiki万事开头难,这话真是一点也没错。前几天调好了MoinMoin,到现在什么都还没写呢。不是没的写,是不知道该怎么下手。wiki的主页(FrontPage)是重要的,因为它是所有文章的入口,就像是 Blog 的分类/导航页面。而作为知识管理的wiki,它的主页就是个人的知识体系结构。不会写wiki,源于对自己的不了解,无法建立自己的知识体系。可是这又变成鸡生蛋还是蛋生鸡的问题上来了,我建立wiki的目的就是了解和完善自己的知识体系,而建立wiki前确需要先对自己的知识体系有一个明确的认识。。。纠结阿。
于是,我发现了一个叫 教育大发现(SocialLearnLab)的讨论组,大牛们的一些讨论对如何建立一个个人wiki还是非常有帮助的。这里引用/整理了Zoom.Quiet的message。
个人wiki该怎么写其实感觉不知道怎么使用维基,这不是你的问题,而是 ...
gzdd
未读这篇文章要介绍的,是我作为专业程序员这些年来学到的能真正提高我的代码质量和整体工作效率的10件事情。
1. 永远不要复制代码不惜任何代价避免重复的代码。如果一个常用的代码片段出现在了程序中的几个不同地方,重构它,把它放到一个自己的函数里。重复的代码会导致你的同事在读你的代码时产生困惑。而重复的代码如果在一个地方修改,在另外一个地方忘记修改,就会产生到处是bug,它还会使你的代码体积变得臃肿。现代的编程语言提供了很好的方法来解决这些问题,例如,下面这个问题在以前很难解决,而如今使用lambdas却很好实现:
1234567891011121314151617181920212223/// <summary>/// 一些函数含有部分重复代码/// </summary>void OriginalA(){ DoThingsA(); // unique code DoThingsB();}/// <summary>/// 另外一个含有部分重复代码的函数/// </summary>void OriginalB(){ Do ...
第一部分、十道海量数据处理面试题
1、海量日志数据,提取出某日访问百度次数最多的那个IP。
首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大的几个)及相应的频率。然后再在这1000个最大的IP中,找出那个频率最大的IP,即为所求。
或者如下阐述(雪域之鹰):算法思想:分而治之+Hash
1.IP地址最多有2^32=4G种取值情况,所以不能完全加载到内存中处理;2.可以考虑采用“分而治之”的思想,按照IP地址的Hash(IP)%1024值,把海量IP日志分别存储到1024个小文件中。这样,每个小文件最多包含4MB个IP地址;3.对于每一个小文件,可以构建一个IP为key,出现次数为value的Hash map,同时记录当前出现次数最多的那个IP地址;4.可以得到1024个小文件中的出现次数最多的IP,再依据常规的排序算法得到总体上出现次 ...