Take Your Kids to Work Day

When you’re a working parent and your child has never even visited your office or place of work, it’s hard to communicate to them what exactly you do and why you are never home during the day. One of the best ways for your child to understand what you do all day is to actually let them visit you. Thus “Take Your Kids to Work Day” was born! In some areas of Canada, this is actually a program instituted in schools, but for office workers in particular around the world, Take Your Kids to Work Day can be any day.

Why It’s a Good Idea

Taking your kids to work can not only fill up a non-school day if you can’t find a babysitter, but can create fond memories for a child of a day at the office or workplace with their parent. It makes them feel special and stands out from the ordinary, boring school day. With proper rules, your coworkers won’t mind, and might even enjoy the break from the normal boring office routine as they drop by to say hi to your children. 阅读全文 >>

步步理解 JAVA 泛型编程(三)

前面介绍的无论是泛型类还是泛型方法,基本上都是把定义的类型参数作为一个整体来操作,放到数组或取出来,顶多就是调用了一下 hashCode() 方法,因为这是 Java 的根对象拥有的方法。比如说一个泛型数组,要得到其中的最小元素:

阅读全文 >>

实用的 JavaScript 测试及效验工具

JavaScript 是一款强大的广泛运用于现代Web站点及应用的脚本语言。作为一个技艺精湛的 Web 开发者,掌握JavaScript可以增强用户的使用体验,提供交互及富客户端等功能。
尽管JavaScript 的语法非常简单,但对于写程序而言仍然是困难重重,就是因为它的运行环境:基于Web浏览器。

以下您可以看到收集的8个实用的 JavaScript 测试及效验工具,它们都可以在不同环境下进行单元测试及校验测试您的脚本。

JSLint
JSLint是基于Web的验证JavaScript错误代码的工具。它拥有的功能及特定的设置来使用您的需求,自定义你的验证算法。 阅读全文 >>

步步理解 JAVA 泛型编程(二)

前面讲了泛型类的定义,你也可以在一个普通类中单单定义一个泛型方法。也就是说类能够带个类型参数,方法也可以带类型参数的。还是来看个例子(包括如何应用),一个获得数组中间元素的方法,因为数组中存储元素的类型是不定的,所以把该方法定义成泛型的。

阅读全文 >>

步步理解 JAVA 泛型编程(一)

JDK 1.5 相对于 JDK 1.4 来说变化最大的部分就是泛型,甚至可以说自 Java 1.0 发布以来也是最大的一次语言变化,因为要涉及到编译器的大改动。很早的时候大家对泛型的呼声很大,正如 C++ 的模板,C# 的泛型确实是个值得借鉴的好特性。JDK1.5 这前,很多人对于泛型是急不可耐,在 JDK1.4 下搭配一个外挂的 Generic Java 编译器,通老实 -Xbootclasspath、-bootclasspath 同样能让你在 1.4 的 JDK 上使用泛型:

javac -J-Xbootclasspath/p:JSR14HOME\gjcrt.jar -bootclasspath JSR14HOME\collect.jar;JDK141HOME\jre\lib\rt.jar -source 1.5 FileName.java
java -Xbootclasspath/p:JSR14HOME\gjc-rt.jar FileName 阅读全文 >>

jQuery 表格工具集

本文搜集了大量 jQuery 表格插件,帮助 Web 设计者更好地驾御 HTML 表格,你可以对表格进行横向和竖向排序,设置固定表头,对表格进行搜索,对大表格进行分页,对表格进行滚动,拖放操作等等。这些插件很多都包含详细的教程。

jQuery 表格插件
Flexigrid – Web 2.0 Javscript Grid for jQuery - 可变列宽,自动适应表头宽度,可通过 Ajax 连接 XML 数据源,类似 Ext Grid,但基于 jQuery 因此更轻量小巧。 阅读全文 >>

http上传文件深度解析-高性能http传输

最近在做web服务器的时候将一些应用集成在了服务器里面,比如说文件上传,结果调试用了一个星期的时间,搞得自己头昏脑涨,现在总于解决了,现将注意细节叙述如下: http上传协议很简单,用post协议,协议头部包含Content-Length项,这是一次上传的所有body部分长度总和,包括多文件之间的分割等等,所以也就难怪了,http上传要比ftp等慢,其实慢就慢在body解析上,下面对于文件分割作一些阐述。 一个典型的http上传协议头类似于这样:

POST /public/upload.action HTTP/1.1
ost: maiit.com:8088
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9b5) Gecko/2008041514                  Firefox/3.0b5
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 阅读全文 >>

JMS 使用 ActiveMQ 传送文件

这里使用的 MQ 中间件是开源的 ActiveMQ,我们没有采用 BytesMessage 来按字节传送文件,而是 ActiveMQ 为我们提供了 org.apache.activemq.BlobMessage,可以用它来传送大对象。org.apache.activemq.ActiveMQSession 中有以下几个创建 BlobMessage 对象的方法:

createBlobMessage(URL url)

createBlobMessage(URL url, boolean deletedByBroker)

createBlobMessage(File file)

createBlobMessage(InputStream in)

接收到 BlobMessage 消息后,可以调用其 getInputStream() 方法获得数据,然后写成磁盘文件,文件名、文件大小等可通过 Message 的 getXxxProperty("Property.Name") 取的。 阅读全文 >>

JMS 基本知识及消息传送模型

JMS(Java Message Service) 是 Java 为面向消息中间件(MOM)定义的接口。JMS 的通信管道就是消息队列,说到消息队列,历史就悠久,在 MS 系统中很早就有 MSMQ,譬如邮件、群组就是些消息队列。JMS 因其异步,所以可用来解决高并发的问题,分布式可对负载进行均衡。

JMS 已成为 J2EE 规范中的一部分,所以在 J2EE 应用服务器中都有 JMS 核心部分 MQ 的实现,MQ 也有独立的产品,如 ActiveMQ、JBoss MQ(已更名为 JBoss Messaging)、WebSphere MQ 等。

如果我们蒙着头来理解,JMS 消息通信中的主要角色应该有:消息生产者(Producer)消息消费者(Consumer)、它们间的消息队列(Queue)、以及所传送的消息(Message)阅读全文 >>

Java 线程同步,对象锁与互斥规则

在前面一篇 是同步方法还是 synchronized 代码?-- 详解多线程同步规则 其实已清楚讲述了这里想要是解的话题,只是之前的长篇大论,没个重点,读来实在会让人受累,故在此单列一专题,假以图示,也为自己加深对同步锁的理解。道中人觉得哪里说得有出入或有更妙的理解方式,尽管拍过来。

记得我初识多线程时,就是很简单化的去理解了同步:说到要同步,无外乎就是给方法加 synchronized 关键字,或者给代码块加上 synchronized(this) 括起来[注:jdk 1.5 后可用 Lock 来同步代码],以为这样就万事大吉,就能保证一个线程执行时,另一个线程就进不来。其实不尽然,因为静态同步方法与非静态同步方法是有区别的,而 synchronized(this) 括号中是用 this 还是要用别的对象,也是有讲究的,这些问题可以阅读前一篇:是同步方法还是 synchronized 代码?-- 详解多线程同步规则阅读全文 >>