分享一段javascript编写的editplus注册机

一直以来,习惯于使用免费、特别版软件的我,经常免不了去收集一些激活码、注册机,虽然杀毒软件各种报毒,但为了便于使用和学习,还是忍住了。最近发现有朋友做了网页版的editplus注册机,看了下源码原来是javascript写的,于是就瞧瞧的拿来分享了。
wordpress原因,代码可能会出现排版不整齐、符号被转义等,想要原始代码的朋友可以直接下载小子正在使用的js文件或者在线打开直接复制即可。

代码链接:传送门

废话不说,code如下: 查看更多...

Liferay portlet首选项(preferences)设置、存储处理

最近使用Liferay做项目集成,由于团队人员在之前对Liferay这东西都没有充分的了解,用起来着实费了不少力气,最近为了为定制好的portlet添加初始化信息,翻阅了一些文章,下面是了解到的关于初始化信息(首选项)的配置处理机制.在JSR168规范中,允许使用preferences来存储portlet的一些初始信息,preferences的内容在portlet.xml来设置.而在Liferay中,对preferences加入了数据库持久化功能,并且可针对company,layout,portlet instance和user的不同组合来定制.

首先来看看在jsp页面上如何访问preferences.

/html/portal/render_portlet.jsp - Portlet输出页面.

Portlet portlet = (Portlet)request.getAttribute(WebKeys.RENDER_PORTLET);
CachePortlet cachePortlet = PortletInstanceFactory.create(portlet, application);

读取preferences.

PortletPreferences portletPrefs = PortletPreferencesLocalServiceUtil.getPreferences(
company.getCompanyId(), PortletPreferencesFactory.getPortletPreferencesPK(request, portletId));

查看更多...

JavaScript:世界上误解最深的语言

JavaScript,是世界上最流行的编程语言之一。事实上世界上的每一台个人电脑都安装并在频繁使用至少一个JavaScript解释器。JavaScript的流行完全是由于他在WWW脚本语言领域中的地位决定的。

Despite its popularity, few know that JavaScript is a very nice dynamic object-oriented general-purpose programming language. How can this be a secret? Why is this language so misunderstood?

尽管它很流行,但是很少有人知道JavaScript是一个非常棒的动态面向对象通用编程语言。这居然能成为一个秘密!这门语言为什么被误解如此之深?

The Name

名字

The Java- prefix suggests that JavaScript is somehow related to Java, that it is a subset or less capable version of Java. It seems that the name was intentionally selected to create confusion, and from confusion comes misunderstanding. JavaScript is not interpreted Java. Java is interpreted Java. JavaScript is a different language.

Java- 前缀很容易使人联想到Java,并认为它是Java的子集或简化版的Java。 查看更多...

初识Apache Velocity(Java模板引擎)

最近项目转用Liferay框架做支撑,在了解Liferay的时候发现Liferay的Theme中使用了不少的*.vm文件,一时不解,就回来上网查了下,本来还以为是Liferay自己封装的模板引擎,简单的了解后才发现这个文件原来是基于Apache Velocity的 Java模板引擎,做为Java开发人员,相信不少人看过或了解过Velocity,名称字面翻译为:速度、速率、迅速,用在Web开发里,但是用过的人可能不多,大都基本知道和在使用Struts,到底Velocity和Struts是如何联系,怎么看待Velocity呢?让我们来尝试一 下,了解Velocity的概念,通过在这里的介绍,强调在技术选择上的问题,让大家在选择项目开发时,可以考虑Velocity,另外也让大家了解它的 思想,毕竟它提供了一个很好的思维方式,给大家换换筋骨,换一种思考的方式。

本文基于你对Java开发有一定基础,知道MVC,Struts等开发模式。

Velocity是一种Java模版引擎技术,该项目由Apache提出,由另外一种引擎技 术Webmacro引深而来。那什么是官方的Velocity定义呢?Apache对它的定义是:一种基于Java的模板引擎,但允许任何人使用简单而强 大的模板语言来引用定义在Java代码中的对象。目前最新的版本是1.7,可以在http://velocity.apache.org/查找更多信息。 查看更多...

Ajax应用事件处理及浏览器内存泄漏实践

事件处理是 Ajax 应用中的重要组成部分,也是应用动态变化的源动力。本文详细介绍了浏览器中的事件处理相关的内容,包括注册事件监听器、事件发生之后的传播机制、编写事件监听器等,还介绍了 Dojo 对事件处理提供的支持。最后介绍了与浏览器内存泄露和性能相关的最佳实践。

浏览器中的事件是 Ajax 应用动态变化的源动力。用户通过输入设备(主要是键盘和鼠标)与应用进行互动。对于用户不同的动作,如点击鼠标左键、右键、或是按下键盘上的回车键,浏览器会产生与之对应的事件。这些事件按照一定的规则在当前文档树中传播。应用可以根据自己的需要,对特定的事件进行处理,以响应用户的动作。这种事件驱动的方式,不仅在 Web 应用中被使用,在桌面应用中也广泛流行。本文详细介绍了浏览器中事件处理的各个方面,包括事件监听器的注册、事件的传播、事件处理和其它高级话题。本文还介绍了如何使用 Dojo 提供的 dojo.connect()。本文中使用的 Dojo 版本是 1.4。下面首先介绍如何注册事件监听器。

注册事件监听器

注册事件监听器的目的是在事件发生的时候添加相应的处理逻辑。浏览器中的事件处理采用经典的观察者(Observer)设计模式。对于可能产生的各种事件,Ajax 应用通过脚本在节点上关注自己感兴趣的事件,并添加相应的处理逻辑。当相应的事件发生并传播到监听器注册的节点时,处理逻辑会被调用。 查看更多...

关于借钱的故事

上个月,我的一个朋友某某因为生意上出了点意外,急需要一笔钱,当他打电话给我时,我感觉有一点奇怪,因为我们的关系仅仅只限于一般朋友,故此,就有了一点点犹豫。我说:一会儿我给你电话吧。
  我考虑了十分钟,决定把这钱借给他。
  上个星期,他把钱还给了我,之后请我喝茶。
  他说:你答应借钱给我还真出乎我的意料之外!
  我问:为什么?
  他回答:打你电话之前我已经打过9通电话,你是第10个。当你说“一会儿给你电话”时,我认为我需要打第11通电话了。我是按照亲疏关系打的这10通电话,越打到后面越没有信心,所以,打你电话已经是死马当成活马医的心态了。
  之后,就这个话题我们谈论了许多,他总结性地说了一句话:如果不是这次借钱,我还以为我有很多朋友,现在我才明白,原来我是这么孤独。 查看更多...

关于Dell inspiron 15 Turbo(INS15TD-3728)的折腾

最近工作需要,多方考察后入手了Dell inspiron 15 Turbo(INS15TD-3728),主要看中的是1920x1080高分屏,其次是8G内存,有了内存和宽敞的工作空间,其余的对我来说都是浮云。

这款机子配置了i7 3632QM处理器,1T硬盘,遗憾的是没有固态盘也没有预留固态盘位,好在我的工作对于硬盘读写速度没太大要求,一般情况下内存够就行了。系统方面预装的是Win8,可惜是众所周知的Win8 for china,用惯Win7旗舰版的我突然换个非超级管理员的权限,实在不爽,虽然功能没什么影响,最终还是决定重装系统了。我就是没事喜欢折腾,下载了XP、Win7、Win8企业版还有Ubuntu12.10,打算不装就罢,要装就装全,遇到各种不兼容问题可以直接换系统实地测试,性能方面绝对高于虚拟机,之前我的台式就是这么搞的,只不过那时候只有XP、Win7和Ubuntu。 查看更多...

两种方式使用Dojox.grid.DataGrid

Dojo的widget机制设计的很不错,默认提供了很多好用的widget,其中DataGrid就是最常用的一种,正常情况下,很多人会选择使用声明式的引入,就是在页面上写入任意html标签,指定dojoType为Dojox.grid.DataGrid,当然,既然是widget,也就支持另外一种方式,也是我比较喜欢用的方式,即编程式引入。

第一种

先通过引入dojo.data.ItemFileWriteStore,构建test_store,简单的理解,即数据源,对应DataGrid的store。dojo的dojo.data.ItemFileWriteStore可以方便的使用ajax请求的相应数据。下面是示例代码: 查看更多...

回顾2012,展望2013

2012,曾是诸多造谣生事者造肆的年度,也正是我真正走上社会的起始点。

很久没有写心情了,似乎是因为一直处在紧张与困惑的节奏中腾不开身,又似乎是时间冲淡了我想表达又不知道如何表达的那种情感,久而久之,就忘却了来收敛一下自己内心的澎湃与激昂。

回忆2012,总有那么一些不称心、不如意,但至少还是熬过来了。从去年春节啃着剩馒头干、吃着煮烂的冷冻水饺,到租一间十几平米的一居室开始蜗居,期间经历了种种读书期间所没能感受到的苦楚,却总得悄悄的叹口气继续等待那丝可能存在的曙光。就这样,用着50k的网络,蜗居在小小的十平米,一天一到两顿盒饭,不分昼夜的找工作、投简历。 查看更多...

细谈可刷新Ajax无刷新应用的构建及原理

想必看标题就有一大部分朋友懵了,其实这个标题完全没有错,我要说的就是目前流行的ajax应用的构建。众所周知,ajax应用的核心就是使用javascript异步调用XmlHttp发送请求并接收数据,然后在前台进行局部刷新,从而达到无刷新改变页面内容的效果。但在很多场合,如果使用大量的ajax,虽然可以使应用使用体验更佳,却避免不了用户因为各种因素而进行的全局刷新。

举个例子,有个文章管理页面,完全是由ajax实现的,在默认情况下显示文章列表,点击某按钮或链接的情况下异步加载了文章添加的界面,此时如果用户刷新了页面,先不说已经写下的内容,页面是不是又回到了列表状态呢?没错,这就是我要说的问题。

其实之前就有过此类困扰,后来为了兼顾各方面灵活性,就采用了多页面的方式,部分地方还使用了iframe。最近又做项目使用了大量ajax,同理,遇到同样的问题。 查看更多...