本想做个 Scala 的推广,无奈本可注册的域名失了时机,望大家能出谋划策

了解了下 Scala(http://www.scala-lang.org) 语言的特性,也觉得颇有些搞头。首先不失面象对象的特征,又能作泛函编程,并能像 Erlang 那样适用于多核、并发编程。且看看这个语言的名称 Scalable,即可知它的志向之远大。力求以高定制、扩展性去应用于,无论是小软件还是大应用。

Groovy 之父说过:要是早知有 Scala,就不会再发明 Groovy。这两东西都是构筑在 JVM 平台的,要说 Groovy 发展至念今,所得奖项也不少,推广好像不咋样。以及有“Scala 将成为现代 Web 2.0 的发起语言” 的论调,还有 Scala 实际在 Twitter 上的应用等等。

然而,国内好像对  Scala 的了解还不多,于是滋生了一个在国内对它进行推广的念头:建个站点、弄个域名、紧跟 Scala 的脚步,网友热心参与。就像人名一样,域名也应该是要让人印像深刻的。前几天在万网上搜索时像 scalachina.com、scalacn.com、cnscala 等都没人用,可是工作忙了下,耽搁了几天,那几个域名就被人占了去,并且也能看到人家的页面了。

没奈,时间上咱是差了一步,那我还是有信息在其他方面做得更好的啊。再说呢,也没过几个 什么什么中国 的网站做得特别出色的呀,看看 JavaEye 是怎么后来崛起的就知道了。我的目标是想做出一个像 JavaEye 那样的东西,看过有个叫 PhpEye,如果再叫 ScalaEye 就有些老土了,原本想的 Scala 中国 这样的名称就有些俗的。

虽说那么多,搞个站点,空间是已经有了,但在最前面掌管门面的终究还是域名,在想一个响亮的名字。就像脑白金,为啥不以它的实际药品学名美乐通宁(melatonin) 来命名,而冠之以“脑白金”,方能显示其金贵。当然脑白金是太多的忽悠成分,我还是不用学这些。既然常规思维被阻断了,那只能另辟溪径,不走寻常路了。

望路过者也来想想假如是做个以 Scala 为内容的网站,集思广议,该取个什么网站名称或域名比较有寓意呢,响亮而容易给人留下深刻印象的。当然不是像恒源祥的广告那样,让人抓狂了被迫记住的效果。若是有兴趣的还可以一起来合作,即使进来调侃调侃下也会是不错的。

介绍一下现阶段比较好的 Scala 中文的网站:51CTO.com 下的 Scala 专题:http://developer.51cto.com/art/200906/127830.htm

Joomla! 1.5 安装程序完全导读【转】

我们从安装程序入口文件 /installation/index.php 开始。

1. 常量定义

index.php 文件起始处定义了若干常量:

_JEXEC 是一个标志量,表示程序正常启动(通过合法入口 /index.php 访问)。Joomla! 在其他所有的 .php 程序起始处,均通过执行以下代码,阻止直接访问非入口程序的请求,这是出于安全的考虑: 阅读全文 >>

iBatis 使用 OSCache 作缓存与 java.io.FileNotFoundException 异常

这种异常只会发生在 Windows 平台上,可以说是 iBatis 的一个 Bug,大约 iBatis 的开发测试人员都比较热衷于 Unix 族系的平台,而忽略了 Windows 下的兼容性测试。

出现 FileNotFoundException 异常的情形是这样的:Windows7 + iBatis2.3.0.677 + OSCache2.4.1。

iBatis 中配置使用 OSCache 缓存,在映射文件 Product.xml 中有如下声明片断:

OSCache 的 oscache.properties 中指明用磁盘文件缓存数据,注意以下几个配置: 阅读全文 >>

也说 Java 的双括符初始化, 其实就是令人费解的不规范代码

初看 cgaolei 翻译的 Java技巧之双括弧初始化 一文,走马观花,只知用法,未细看后面的解释。蔚为惊艳,心里想 Java 竟然有这么神奇的语法而一直未得知。因为在初始化集合时确实方便不少。原来做某些测试要初始化集合时会用到 commons-lang 包和 JDK 的 Arrays 工具类,现在知道可以这么用了:

看起来都是在一条语句里完成,而不需要分步骤写成: 阅读全文 >>

使用 XStream 在 JavaBean 与 XML/JSON 之间相互转换

XML 和 JSON 是当今常用的两种数据描述与传输的格式,特别是涉及到 JS 时使用 JSON 颇为频繁。自然,在 Java  的世界里少不了完成 JavaBean 与这两种格式相互转换的组件,那就是 XStream 和 JSON-lib。这里我简单记下 XStream  的用法。

其实相类似的工具早已有之。如果用过 DWR 的同志,一定有印像,DWR 进行远程方法调用时也能为你完成 JavaBean 和 JSON 格式的双向转换的,所依赖的是它的各种 Converter。再要是对 Struts1 的细节有所注意的话,Struts1 的 ActionServlet 在初始化 struts-config.xml 时是通过 commons-digester 来完成 XML 到 JavaBean 转换的。相应的 Apache 也有一个 commons-betwixt 实现了 JavaBean 到 XML 的生成。 阅读全文 >>

Ext.data.Record 的基本法及其 API 帮助的一个 Bug

基本用法(不涉及其他相关类):

Ext.data.Record 实例就是对应一条记录,记录通常会放在数据集 Store 中,其中包含了数据的定义信息(字段名等) 和数据的值信息。这里不涉及与它相关的 Proxy、DataReader 和 Store,只单纯的用 Record 的方法。通常是两步,先调用 Record 的 create() 方法,返回一个类,然而 new 前面方法返回的类,代码过程如下:

代码说明: 阅读全文 >>

ExtJs 中使用 TaskRunner 和 DelayedTask 如何传参数到 run() 方法

在 ExtJs 中支持多线程的类有 Ext.util.TaskRunner 和 Ext.util.DelayedTask。TaskRunner 提供了多线程的定时服务,DelayedTask 允许你延时多久在新建线程中执行一个任务。Ext.TaskMgr 是一个 TaskRunner 实例,在 TaskMgr.js 源码中可以看到最后一行是:

Ext.TaskMgr = new Ext.util.TaskRunner();

实质上不管是 TaskRunner 还是 DelayedTask,它们都是通过 setInterval() 来执行任务的,TaskRunner 能多次重复的执行一个方法,而 DelayedTask 是延时执行完一次任务后就会调用 clearInterval() 来保证只执行一次。所以这里所说如何向任务的 run() 方法传递参数,本质上就是向 setInterval() 中方法传递参数。 阅读全文 >>

如何无需密码进行 SSH 连接[翻译]

译自:http://www.vineetmanohar.com/2009/07/17/howto-ssh-without-password/

这个简单的教程讲解了如何无需输入密码 SSH 连接到远程机器。在你需频繁的登陆到同一机器,而又不得不一次次输入密码时就可以使用这一技术。这也很适于这样的场景:当你有一个脚本需要通过 SSH 从远程机器取文件或者在远程机器上执行一个任务,并且希望能自动的运行该脚本,而用不着人工去输入一个密码。

这些指令在 Linux 和 Mac 下能正常工作。你可以在 Windows 下参照同样的方法来使用 Putty,但是我这里没有针对具体 Putty 指令作描述。

目标:从本机登陆到远程服务器无需输入密码

步骤 1/2:在本机上:生成认证码

认证码是一个私钥公钥对。你的公钥也是一个 2-3 行的长长看不懂东西。公钥就像是你登录后的唯一标识。私钥就像是你的密码,但比一个规则的密码要长。你可以通过如下命令来产生你的公钥和私钥: 阅读全文 >>

揭秘IT人才特点:中美印日四国程序员比较

 最近以裁判的身份参加了公司举办的编程大赛,发现高手云集,对公司内部的程序员能力也有了更深入的了解。我觉得编程能力对程序员而言,虽然很重要,但并不是全部。那么作为一个程序员,到底应该具备什么样的能力呢?这个话题显然太大。不过我觉得可以看看其它国家的程序员,也许可以得到一些借鉴。我有幸和中国,美国,印度和日本四国程序员有比较深入的合作过。虽然他们不一定有代表性,但我觉得他们的共性还是比较明显的。以下的比较纯属个人见解,欢迎指正。
 
首先是日本程序员。他们的特点是非常仔细。我认为很主要的一个原因是日本公司的需求非常细致。细致到在网页上,连一个像素都不能偏差的地步。另外,日本人的执行力非常强,对老板的承诺比命还重要。一个项目可以做到连续3个月天天加班,每天只睡4个小时。然而,高执行力背后的代价是低创造力。在日新月异的互联网今天,很少听说日本工程师发明了哪些重要的技术。与其说这些特点是日本程序员的,不如说是大部分日本人的。因为在日本文化中,追求品质和遵守等级制度是根深蒂固的。另外,技术领域中的很多专业词汇是外来语,以英语(论坛)为主。这些专业词汇往往会被翻译成片假名。而片假名的发言有时候和英语大相径庭,导致沟通的困难。比如病毒一词在英语中是Virus,发音为歪儒斯,而日语的发音是味鲁斯。再例如服务器(Server)一词在日语中的发音是萨巴,和英文发言简直风牛马不相及。因此与日本程序员沟通是比较痛苦的,除非你懂日语。 阅读全文 >>

ExtJs 中 xtype 与组件类的对应表

我们在使用 ExtJs 创建组件时最容易理解的当然是用
 
new Ext.form.TextField({fieldLabel:'姓名', id:'name',width:120});

我们还可以直接用 xtype(比如 TextField 对应的 xtype 是 textfield) 的对象形式来创建组件,比如在面板的 items 属性中,尤其是多个组件或需要写许多的 ExtJs 相关代码时就更值得推荐。我们来对照如下形式就知道了:

阅读全文 >>