`
harry
  • 浏览: 179859 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
Flickr Architecturehttp WikiPedia 技术架构学习分享http://www.dbanotes.net/opensource/wikipedia_arch.htmlYouTube 的架构扩展http://www.dbanotes.net/opensource/youtube_web_arch.htmlInternet Archive 的海量存储浅析http://www.dbanotes.net/database/internet_archive_storage.htmlLinke ...
我在上学期和清华的同学讨论了代码量的问题。 因为许多相似课程都有“代码量”的要求,就是说软件工程的项目选题如果没有到一定量的代码,就不能算合格的选题。  我对教学没什么经验,我认为 - 软件工程课上写的软件只要解决实际问题,就至少是及格的选题。 我后来顺口胡诌了一段: 清华园有两棵果树,春天长芽,抽条,夏天开花,秋天结果。清华软件科学试验班的同学去采摘,发现果树A 的果实比果树B 的果实多很多,并且好吃。于是同学们都在果树A上采摘,并在果树A下面合影留念。 果树B 很委屈,它在秋风中摇晃树叶,说 – 可是我的树叶量是它的三倍!清华的同学没听懂果树B 在飒飒秋风中的抱怨,背 ...
鞋厂理论:世界上有无数家鞋厂,制造着各自的鞋子,销售给各自的客户。 在网络上,当某个生意已经有人在做的时候,就想想皮鞋理论,你会发现:在大多数情况下,即使有很多人在做鞋子,也并不意味着你就不能再去做鞋 ...
Introduction IPMItool is a utility for managing and configuring devices that support the Intelligent Platform Management Interface (IPMI) version 1.5 and version 2.0 specifications. IPMI is an open standard for monitoring, logging, recovery, inventory, and control of hardware that is implemented ...
我也是在前段时间python开始使用Mercurial 才开始关注这个版本控制系统,很多我们所熟悉的程序包括: Adium Python app-engine-patch 等都采用Mercurial 进行版本控制。   支持向https://projectname.googlecode.com/hg发送pushing和pulling 支持email commit 支持浏览源码 支持独立的changesets和diffs 可视化的changeset DAG 支持post-commit code reviews Google Code ...
jboss-as 目录结构(Directory Structure) Directory Description bin Contains startup, shutdown and other system-specific scripts. Basically all the entry point JARs and start scripts included with the JBoss distribution are located in the bin directory.
Python中有一个pExpect 模块,和TCL中的expect命令差不多,通过expect可以使你的脚本和shell命令之间进行交互。 下面python脚本,使用了expect与ssh和scp交互来完成任务。   #!/usr/bin/python import pexpect import sys import time import os now = time.strftime("%m%d%y_%I%M%S%p", time.localtime()) if sys.argv[1] == '-c': foo = pexpect.spawn('scp -r ...
     随着google app engine的推广,google的bigtable越来越得到重用。当然使用GAE的时候是感觉不到bigtable的存在的,因为我们直接使用的是封装好的google.appengine.datastore。GAE的datastore使用起来很像大多数的orm,对于现在使用怪了orm的程序员来说非常的friendly(定义model and properties就可以)。datastore是基于bigtable实现的,在这个视频(App Engine Datastore Under the Covers)中有详细的介绍。      由此想到,是否可以做一个obje ...
wget不仅能抓取某个页面,还能对网站做镜像,貌似很不错。这个不就是爬虫吗?而且速度也很快,用来抓取网页格式的文档是不错的。   让我们看这条命令: wget --mirror –w 2 –p --HTML-extension –-convert-links –P ~\wget_files\example1 http://www.yourdomain.com   --mirror(-m):指定要做镜像的网站。wget会获取网站的所有链接和相关的文件。如果本地镜像存在,还会自动覆盖最近的更新。 -w:告诉wget每个请求的间隔时间,这里是2秒。这个不是必需的,当有些站点对请求间隔有限制时,这个参 ...
      做过网络管理的人,对于MRTG应该不算陌生。MRTG可以不断收集来自SNMP的数据,保存这些数据,并且按照日、周、月、年的方式生成4幅图像及相关说明,很直观的显示出要检测数据的趋势信息。 MRTG是比较早的技术了,后来又出现了RRD技术,是在MRTG技术的基础上发展起来的,更加灵活、更加方便。其应用也不在局限在主要监测网络数据上了。你可以通过RRD提供的强大功能收集各种各样的信息,并且生成更加复杂的图像。你也可以在自己的应用程序中使用它,因为它提供了丰富接口,方便应用程序调用。       JRobin是RRD的java版本,其原理是一致的。假如你打算监测计算机的CPU使 ...

Java中assertion的使用

    博客分类:
  • Java
      assertion的使用是一个复杂的问题,因为这将涉及到程序的风格,assertion运用的目标,程序的性质等问题。通常来说,assertion用于检查一些关键的值,并且这些值对整个程序,或者局部功能的完成有很大的影响,并且这种错误不容易恢复的。assertion表达式应该短小、易懂,如果需要评估复杂的表达式,应该使用函数计算。以下是一些使用assertion的情况的例子,这些方式可以让java程序的可靠性更高。        1. 检查控制流; 在if-then-else和swith-case语句中,我们可以在不应该发生的控制支流上加上assert false语句。如果这种情况发生 ...
堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统 下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。 典型设置: java -Xmx3550m -Xms3550m -Xmn2g -Xss128k - Xmx3550m :设置JVM最大可用内存为3550M。 -Xms3550m :设置JVM促使内存为3550m。此值可以设置与-Xmx相同,以避免 ...
问题 随着AJAX的流行,JS在web应用中的比重越来越大。随之而来,对JS代码的维护和重用就需要有一套机制来管理。 Java中除了对象、类这些概念外,还有一个灵活的包机制。众所周知,JS本身并没有内建这样的机制,所以像一些JS框架,如DOJO,就自己实现了一套。 在我们当前的项目里,评估了几个JS框架,然后决定了采用Mootools,主要是因为它更加OO,更有利于重用。遗憾的是Mootools并有包机制这些概念。那我们可否自己实现一套简单的包机制呢? 分析 Java的包机制需要JVM的一些支持,而JS的情况更加接近于cpp。cpp中是使用include不同的头文件来使用不同的模块,使用name ...
自己一直在用MooTools框架 , 偶然看见这篇文章,作者是MooTools Team的成员之一,讲解了jQuery和MooTools的一点点区别,主要是我觉得他写JavaScript代码和他的思维方式很值得学习。另外,对 JavaScript的编程思想和对框架的选择都有很多很好的建议,对于犹豫在各种框架上的人有很好的指导作用,另外对于想深入对框架进行研究或者想自己 开发框架的人也有很好的建议。文章虽然很长,但是我觉得不错,然后就翻译了。水平有限,文笔粗陋,其中有少数地方自己都觉得翻译得有些牵强,欢迎批评指 正。 由于文章太长,我这里就分了上下两篇,下文在这里:[翻译]jQuery和MooT ...
企业级应用集成简单的说就是将分散的应用程序集合到一起,提供一个统一的功能集合。一个企业中可能有很多个独立实现的应用程序,使用了不用的语言不同的平台。企业需要一个统一的方式来共享数据和处理过程。 企业级集成主要有几个方式: 文件传输(File Transfer):让每个应用都生成共享数据的文件供其他应用消费,同时也消费其他应用生成的文件。 共享数据库(Shared Database):让每个应用都将要共享的数据存储到一个通用的数据库中。 远程过程调用(Remote Procedure Invocation):让每个应用暴露一些过程(函数)供远程调用,其它应用可以远程调用这些过程来执行行为和转 ...
Global site tag (gtag.js) - Google Analytics