SSH, 又见SSH

这里的SSH不是指的Secure Shell,而是指的Struts + Spring + Hibernate。关于这3个东西,大家都不陌生了。合在一起是目前主流的Java Web应用开发模式。写这篇博文的出发点是我今天的一个面试。实际上我之前也面试过一些人,SSH是我很常听到的一个词。每次听到这个词,我不由自主的有种感觉,是不知道该如何发问。我并非SSH的专家,我所用到SSH的地方也就是之前自己做过一两个小应用,纯粹是学习的用途。SSH肯定也有很多我不知道的技术细节。
 

个人网站终于恢复了

看来要搞一个自己的网站,真的是一件比较麻烦的事情。之前是没有备案,被封掉了。这次说是机房要封查,又不能访问了。好在红色主机的服务还不错,给免费换了一个香港的主机,不需要备案的。不过价格要贵100块每年。暂时先用着吧。
有了新主机之后,就开始从原来的站点备份文件和数据库,然后导入到新的站点上来。顺便把Drupal也升级了一下。中间遇到了一个问题,就是首页可以打开,但是访问其它页面,如/node之类的,都是出现404错误,后来才发现,是根目录有个.htaccess文件没有被拷贝过去。这个文件在drupal的安装包里面是有的,我用的是主机的在线解压功能,看来这个功能有问题,把这个文件通过FTP传上去之后就好了。
 
最近有比较长的一段时间没有更新了,等过年放假的时候再更新几篇。
 
更新:原来文章的评论不能正确显式了。

忘掉了Windows登录密码怎么办?

早上起来打开笔记本电脑,输入密码,Windows居然提示我密码不对!怎么可能,我每天输那个密码都不下10次了,昨天还好好的,怎么一早上起来就不对了。尝试了很多次依然不行,我又尝试了之前用过的一些密码,都不对。我的密码怎么会神奇的被人改掉呢?马上开台式机百度之,发现一些解决方案,什么用启动盘啊,删SAM文件啊,方法倒是不少。我找到了以前番茄花园的启动盘,用它所谓的NTFS DOS启动之后居然找不到我的C盘,所有的修改文件的大法都用不了了,难道要我重装系统,那么多软件咋办呢?

 我突然猛得意识到,我以前装过DB2啊,DB2会自己新建一个管理员帐号的,马上尝试,居然让我登陆进去了。马上到控制面板的计算机管理里面把原来的那个用户的密码改掉了,一切终于完美解决。

 得出的重要结论是:DB2是个好东西

 

用什么样的Web应用开发模式

 最近也在尝试做一些Web应用,一直在纠结用什么样的技术是最合适,最快速而且最简单,而且能够发布在公网上面。我自己并没有真实的主机,最多只有一个LAMP的虚拟主机。基本上我的选择有这些:

 

  • 使用LAMP虚拟主机。这个就需要PHP和MySQL的技能。我对PHP完全不熟悉,只能现学。
  • Google App Engine。支持Java,可以在上面用servlet的那一套东西。服务端可以走Spring,Struts这一套,暴露REST接口,以JSON格式发布数据;客户端就用Dojo/jQuery之类的技术。这是一种技术选择,也是很多情况下使用的方式。我尝试用过这种方式,最大的问题就是层次和模块太多,Java语言本身也过于复杂,各种框架的配置非常麻烦,要熟悉的库很多。后来我又尝试了另外一种方式,回到Web 1.0的时代,利用JSP来生成HTML页面,加上适当的JavaScript代码,这种方式我觉得比目前流行的方式更好。对搜索引擎的支持也更好。
  • Flex。我也是最近才开始关注这个技术。我觉得Flex的好处就是统一,是一个完整的解决方案。可以避免很多浏览器的兼容性问题。

 

《使用Apache MINA 2开发网络应用》

这是最近写的一篇关于Apache MINA 2的文章,主要介绍了Apache MINA 2的技术细节,对于想用它开发网络应用的人来说,可以作为一个参考。这篇文章的写作花费了我很长的时间,主要是其中示例应用的开发时间很长。为了做那个联机的俄罗斯方块,我花费了很长的时间把Spring Rich Client, Apache MINA和Spring整合起来,涉及到UI的开发就会比较复杂一些。最后做出来的效果还不错吧,虽然代码仍然有些粗糙。目前的想法是重构整理之后再发布出来。

点击这里访问这篇文章。文章的简介如下:

“简约在线视频播放器”更新

昨天回去之后把之前做的一个古老的Google App Engine的应用“简约在线视频播放器”做了一下更新,目前版本是3.0. 主要的更新如下:

  • 修正了热门搜索关键词无法显示的问题。百度修改了其视频搜索的页面,我做了对应的调整。用YQL取代了以往的用Python解析的方式。
  • 添加了HTML meta标签。
  • 添加了2个广告。(好吧,我承认我是想钱想疯了。。。)

 

下面应该考虑对另外一个古老的应用“水木社区图片库”进行升级了。由于水木社区对图片启用了HTTP referrer头的检查来防止盗链,目前无法在当前页面上直接查看图片了。目前想到的只有用服务端代理的方式。

启用Apache的目录浏览功能

我想做的事情很简单,我下载了dojo的源代码,想挂在网上,让局域网内的人可以访问其中的测试页面。于是我用了Apache,然后通过它自带的目录浏览功能就可以了。Dojo自己的构建服务器也是同样的做法。但是启用目录浏览并没有想象中的容易,我google了有一段时间,又自己尝试了好几次才成功。最终的httpd.conf是这样的。

 

Alias /dojo_src "D:/osprojects/dojo"
<Directory "D:/osprojects/dojo">
     Options +Indexes +FollowSymLinks
     AllowOverride AuthConfig FileInfo
     Order allow,deny
     Allow from all
</Directory>

我在Apache 2.2上试的,没问题。

Google的新编程语言Go

又有新的编程语言出来了,这次是Google的Go,一种系统级的新的编程语言,主要用来应对多核处理器带来的挑战。这门语言也有其他的特性,包括速度快、面向对象、类型安全、并发、内存回收等。目前Go语言编译出来的程序的性能还不错,只比C+慢20%左右。

 

Go语言背后的发明者都是Google的牛人:

  • Ken Thompson:1983年图灵奖获得者,Unix操作系统的作者之一。B语言(C语言的前身)的作者。
  • Rob Pike:贝尔实验室的Unix小组成员之一,UTF-8编码的创建者之一。
  • Robert Griesemer:Java HotSpot编译器和Google Chrome的JavaScript引擎V8的作者之一。

 

Go语言的程序大概长下面这个样子:

使用开放 API 和工具快速开发情景式 mashup 应用

 

使用开放 API 和工具快速开发情景式 mashup 应用“这篇文章终于发表了,等了有差不多一个月了。这篇文章算是我之前一直在做的甲型H1N1流感最新动态Mashup的一个总结吧。

 

关于甲型H1N1流感的mashup,四月份的时候就开始做了。当时是看到大家都比较关注猪流感,各大门户网站也有相关的专题页面。自己就想着利用已有的开放API自己做一个mashup,并在Google App Engine上面快速的实现了。后来又有了一次比较大的更新。之后觉得可以把做这个mashup中的一些经验总结出来,于是就有了这篇文章的想法。

 

为了完成这篇文章,我对mashup的实现做了很多调整。在这篇文章中可以下载的示例代码是修改过的。

1)实现语言从Python换成了Java。主要是考虑到Java语言比较普及,而GAE也有Java的支持了。

2)JavaScript库从jQuery换成了Dojo。

3)增加了必应的视频搜索。由于Twitter和饭否不能访问,换成了另外一个微博客服务Identi.ca

 

使用Fiddler来查看JVM发出的HTTP请求

在服务端代码中,我们经常会用Apache HttpClient或是JVM自带的HttpURLConnection来发出HTTP请求,如何查看这些请求的内容,我之前一直没有搞清楚。我试过一些监测工具,总是捕捉不到,前几天才知道应该这么去做。

用我们在IE上调试时常用的Fiddler就可以。Fiddler默认是作为系统的代理服务器的,所有通过Fiddler代理的请求,自然会被Fiddler来捕获。Fiddler的默认代理端口是8888. 只需要在启动JVM的时候加上参数-DproxyHost=localhost -DproxyPort=8888就可以了。 

同步内容