ActiveMQ: UnknownHostException on startup

在ArchLinux上使用ActiveMQ,执行bin/activemq,报错UnknownHostException,Transport Connection无法建立,可以取到/etc/ec.conf中设置的hostname(默认myhost) 解决方法,编辑/etc/hosts,添加127.0.0.1 myhost myhost。再次启动即可。Ubuntu上hosts自动把计算机名解析到127.0.0.1,ArchLinux上需要你手动做这件事了。

Posted in: 手艺 by Sunng 2 Comments , , ,

YAMB is now hosted on kenai.com

YAMB(Yet Another Microblogging Tool) which is mentioned several days ago is now hosted on Sun’s project-kenai licensed with GPL2. http://kenai.com/projects/yamb You can grab the source code from following link via mercurial(hg). https://kenai.com/hg/yamb~hg-repos Actually, there is nothing new.

Posted in: 把戏 by Sunng 3 Comments , ,

Inside Grails Flash Scope

Grails的在Servlet API的基础上增加了一个非常实用的FlashScope,FlashScope的生命周期为两次请求(也就是在一次重定向)。它的典型应用是POST方式提交后显示服务器端发给用户的提示信息,在平时的应用中会经常使用。 Grails的FlashScope接口定义在org.codehaus.groovy.grails.web.servlet包中,这个接口继承了Map接口,并定义了一个方法next()。 Grails的默认实现在org.codehaus.groovy.grails.web.servlet包中,GrailsFlashScope。这个实现内部定义了两个Map(生命周期为两个请求),current和next,这两个Map不断滚动,保持在一个请求中可以且仅可以访问到当前和前一次请求的上下文。 [codesyntax lang="java"] public void next() { current.clear(); current = (HashMap)next.clone(); next.clear(); reassociateObjectsWithErrors(current); } [/codesyntax] put的时候,Grails只把新制放到next表中,因为next将在下一次请求时继续保存 [codesyntax lang="java"] public Object put(Object key, Object value) { // create the session if it doesn’t exist registerWithSessionIfNecessary(); if(current.containsKey(key)) { current.remove(key); } storeErrorsIfPossible(next,value); return next.put(key,value); } [/codesyntax] get的时候,Grails在两个Map中查找 [codesyntax lang="java"] public Object get(Object key) { if(next.containsKey(key)) [...]

Posted in: 手艺 by Sunng No Comments , ,

史有先例的一跤

听说要来台风,今天特地想着把自行车推进楼道里。楼道到平地有一个坡道,就是大家都见过的那种坡道。于是我骑着自行车冲了上去,试图把动能转化成势能。不料时间停止在了坡道的三分之二处。现在不仅大脑的并行处理能力下降,小脑更是时常挂起。你说我当时怎么就没有想到使把劲蹬上去呢,我确实没有这么想,连条件反射都没有。事后觉着大概是沉醉于那一刻的静止了。两个轮子终归是不暇流连的,接下来势能没有舍得转化给摩擦,它一定程度上在我的授意之下换了个方向通通变成动能了。躺在地面上的时候我就在想上次如此贴近大地是什么时候了,大约应该在最近三十年之内。整个过程发生在下班回家热火最朝天的时候,我的视界里倒是没有发现其他眼睛,但是可以确定的是此时此刻一定有不少痴痴的目光对着我的后脑勺。希望这一切没有颠覆牛顿们这么多年来给他们建立的世界观,不过其实整个过程更象是风力作用的自然现象,只可惜台风还远,另外,我不知道风是在哪一个方向吹。

Posted in: 自话 by Sunng 4 Comments

Another simple micro-blogging tool initialized

A simple micro blogging tool based on Java web framework stack (Struts2/Spring/iBatis). It costs me five days to develop such a prototype version which supports basic functions(view, post, follow and tag). And I will try to deploy it on GAE later(I hope it is possible). More improvements will also come up in next severals day. [...]

Posted in: 把戏 by Sunng 2 Comments , , , ,

Notes of Even Faster Web Sites

异步、模拟多线程式的JavaScript,防止界面锁死。例如Google Gears,Firefox3.5 WebWorker异步API。 拆分JavaScript文件,即需即载入即运行,避免首次载入的高代价。类似dojo的分包机制。 普通的script会阻塞页面的载入直至脚本下载执行完成,采用其它方法可以改变这种情况:XHR Evel, XHR Inject, Script DOM, Script Defer, Script in Iframe, Document.write Script Tag。 由于外部script和内联代码异步载入造成的冲突,解决方法1. 在外部编码种硬编码回调,2. 在Window.onload中调用 3. 用timer监控载入情况 4.scripttag.onreadystatechange 把异步载入外部脚本的方法编写为可复用的module 处理内联脚本,解决方法:1.将内联脚本移至页面尾部 2.异步执行JavaScript回调(setTimeout(0)) 3.使用script defer属性 内联脚本执行会被 语言级别上提高JavaScript执行效率的一些手段,Zakas Comet的前景和现阶段实现,以及WebSocket 优化HTML文件 优化图片的utilities和几种格式的特点 sharding文件到不同的服务器上增加并行下载 正确地使用flush提高部分页面的加载速度 影响因素1.是否开启了Output_Buffer,2.是否使用了chunked encoding, 3.是否启用了gzip并在apache228上运行 4. 是否被代理和AV软件影响了 5.是否因为相同的域名的文件下载被block了 6.是否是webkit阈值以下不能渲染 慎用iframe,DOM操作代价过高,在html中设置src的iframe会阻塞onload,iframe与style script标签的位置 高性能的CSS选择器,避免全局rule,避免div#sele,避免div.sele,避免使用长选择器,避免使用decendant选择器,避免使用tag-child选择器,查看所有child选择器,使用继承

Posted in: 手艺 by Sunng 8 Comments ,

Alexander Sukhanov

Alexander Alekseevich Sukhanov,亚历山大.舒克汉诺夫1952年出生,莫斯科大学Mechanics and mathematics faculty, Department of computational mathematics, Laboratory of computing methods 任教,数学博士。他的另一个重要身份是歌手和诗人。从1969年开始创作,拥有近150首作品。 这里可以找到大量作品: http://bards.pp.ru/Suhanov/ 个人主页: http://www.math.msu.su/~sukh/ Wiki Page: http://en.wikipedia.org/wiki/Alexander_Sukhanov 魅力啊~ 个人主页:

Posted in: 自话 by Sunng 2 Comments ,