January 11, 2016

1英里 =1760 码 = 5280英尺

闹笑话了,最近在湾区开车的时候用Google地图导航:
导航总是在显示还有0.2英里的时候告诉我,还有1000英尺(我理解是还有200英尺啊)?
明明还有100英尺(我理解是还有0.1英里),怎么立刻就该拐弯了?
这不会是谷歌地图的Bug吧?

后来一查才知道:1英里等于5280英尺,怪不得……

按此阅读全文 "1英里 =1760 码 = 5280英尺" »

January 09, 2016

拉斯维加斯 CES 2016 观感

1 参加CES的中国厂商: 高调 vs. 平庸
法拉第电动的发布第二天在现场观察了一下:前去拍照的人挺多,很多人也是被前卫的造型惊呆了,听到不少人说:amazing, fantastic,也有人说ridiculous,另外一个比较抓眼球的是载人的亿航无人驾驶飞机。为乐视汽车/亿航的“高调”捏把汗,这些厂商如果今天挖了坑,可能需要国内同行用好几代产品去填。

相比互联网风格厂商的过于高调,中国传统家电厂商普遍缺乏创意:虽然展厅面积越来越大了,但展示的内容很空洞,产品定位相比较日韩厂商完全跟随,没特色。CES的参观者很多都是冲着新概念和开脑洞来的,如果只是把商场的专柜搬过去:就是完全浪费了在主会场的机会,需要订单的不如去参加广交会更好啊。

当然了,个人并非完全赞同互联网背景厂商的策略,但至少他们在CES主会场做了该做的事情,营销上还是及格的。传统家电厂商则完全还停留在去摆摊的阶段。

2 电动车:辅助驾驶 vs. 全自动 / 低速 vs. 高速
电动车分成高速电动车和低速电动车两个领域。

高速电动车和汽车领域在这届展出了大量和自动驾驶相关的技术:自动驾驶今年是热门,但我怎么觉得离得很远呢,或者自动驾驶根本不应该首先是个人使用的目标呢,自动驾驶有可能先在货运领域和全封闭道路环境下实现,而且自动驾驶的基础目前是图像视觉识别和雷达,成本过高,受气候等环境变化的影响太大。而且就算是自动驾驶实现了:也非常担心实际环境中的复杂变数。

更现实的是辅助驾驶/辅助停车有可能会短期内大量普及:类比下自动挡和倒车雷达在家用汽车领域的普及速度。

这次起亚KIA的智能驾驶解决方案挺实用的:
比如盲点区域的物体检测/报警:并线时候检测盲点区域和可能进入的车辆,减少碰撞,
并线报警:如果是无意识下的偏离当前车道会有并线警告;
遇到紧急情况的自动制动:避免追尾;
还有不规范的远光灯使用:
其他车辆灯光靠近后自动关闭远光灯(在某些国家应该强制配备)
根据道路坡度自动调整远光灯角度

相比高速电动车:低速电动车产品因为没有太多安全方面的强监管,反而有更快的进化速度。在滑板车领域:今年NineBot的展台比去年大了10倍:关注尝试的人非常多。通过在便携性,易学性上的改进,相信会比SegWay有更好的表现。能够放进一般汽车后备箱的两轮电动自行车/滑板还会有额外更多的使用场景。

3 VR 裸眼 vs. 头盔
各种全景摄像工具越来越成熟:让VR内容制作成本越来越低。但头盔真的是消费VR内容最佳的方式吗?尤其是家用场景下:一直像盲人一样戴着眼镜恐怕不是一般人可以习惯的。上次在MakerFaire 感受比较好的是理光的一个球幕投影,也许未来会有专用小帐篷来观看VR/球幕内容。

按此阅读全文 "拉斯维加斯 CES 2016 观感" »

August 23, 2014

算法分析师2名: 无线互联网的海外电商平台 要聪明

替卢亮发招聘启示:

岗位需求:算法分析师2名

公司名称:第三石科技发展有限公司
业务方向:无线互联网的电商平台
建模方向:商品推荐,用户积分平衡体系、无线互联网用户行为分析
要求:研究生,熟悉机器学习,熟悉概率统计,有日志分析经验者优先
素质:非常聪明(因为和你一起工作的人都是geek),善于学习,非常敏锐,善于总结

联系方式:geek@wespoke.com

按此阅读全文 "算法分析师2名: 无线互联网的海外电商平台 要聪明" »

September 06, 2007

面向站长和网站管理员的Web缓存加速指南[翻译]

原文(英文)地址: http://www.mnot.net/cache_docs/  版权声明:署名-非商业性使用-禁止演绎 2.0

这是一篇知识性的文档,主要目的是为了让Web缓存相关概念更容易被开发者理解并应用于实际的应用环境中。为了简要起见,某些实现方面的细节被简化或省略了。如果你更关心细节实现则完全不必耐心看完本文,后面参考文档和更多深入阅读部分可能是你更需要的内容。

  1. 什么是Web缓存,为什么要使用它?
  2. 缓存的类型:
    1. 浏览器缓存;
    2. 代理服务器缓存;
  3. Web缓存无害吗?为什么要鼓励缓存?
  4. Web缓存如何工作:
  5. 如何控制(控制不)缓存:
    1. HTML Meta标签 vs. HTTP头信息;
    2. Pragma HTTP头信息(为什么不起作用);
    3. 使用Expires(过期时间)HTTP头信息控制保鲜期;
    4. Cache-Control(缓存控制) HTTP头信息;
    5. 校验参数和校验;
  6. 创建利于缓存网站的窍门;
  7. 编写利于缓存的脚本;
  8. 常见问题解答;
  9. 缓存机制的实现:Web服务器端配置;
  10. 缓存机制的实现:服务器端脚本;
  11. 参考文档和深入阅读;
  12. 关于本文档;

按此阅读全文 "面向站长和网站管理员的Web缓存加速指南[翻译]" »

September 10, 2003

mod_gzip:Apache的HTTP压缩优化

HTTP压缩对于纯文本内容可压缩至原大小的40%一下,从而提供60%以上的数据传输节约,虽然WEB服务器会因为压缩导致CPU占用的略微上升,但是可以节约大量用于传输的网络IO。对于数据压缩带来的用户浏览速度提升(让页面符合8秒定律),这点总体负载5%-10%上升是非常值得的。毕竟通过数据压缩会比通过不规范的HTML代码优化要方便得多。

按此阅读全文 "mod_gzip:Apache的HTTP压缩优化" »

September 09, 2003

ACDSee的HTML相册生成

内容摘要:
随着数码相机的普及,每次出游回来都会面对数量上百的照片整理,处理效率还是非常重要的因素。ACDSee 3.1(完整版)仍然是我目前最常用的照片查看/归档工具。以下是使用ACDSee进行照片整理和HTML相册生成的经验总结,大部分操作都可以完全只使 用键盘操作完成。

按此阅读全文 "ACDSee的HTML相册生成" »

August 06, 2003

基于鼠标点击跟踪的用户点击行为分析

内容摘要:
在像网站首页这样的资源比较集中的页面中,那些栏目最经常被用户点击?居左居右对广告的点击率的影响是什么?
“一切用数字说话”:以上问题都可以通过跟踪浏览器客户端的鼠标行为,按区块对页面进行点击行为的分析。

按此阅读全文 "基于鼠标点击跟踪的用户点击行为分析" »

Google排名优化-面向搜速引擎的广告模式

如果说新一代搜索引擎Google所依赖的PageRank技术更真实的突出了超链接(hyperlink)在互联网中互联互通的本质,大型门户网站是否也应该反思一下传统的广告投放/统计模式,也许让广告回归到最原始的静态链接形式,通过间接提升广告客户自身网站在大型搜索引擎中的排名这种模式也许更能突出大型门户网站自身的优势。

你完全不必耐心的看完后面所有的内容,因为结论无非以下一句话: 互联网上链接就是一切:来自其他网站相关主题的直接静态链接是唯一对提升自身站点在搜索引擎中的排名提升有长期作用的广告形式。

按此阅读全文 "Google排名优化-面向搜速引擎的广告模式" »

BBS2Blog—让BBS和Weblog互通

内容摘要:
拥有大量的历史积累的各种论坛系统中的内容往往很难被搜索引擎收录,BBS2BLOG是一个bbs改造思路:通过对现有BBS加入按“个人”的归档机制, 让这些丰富内容都可以成为整个可搜索互联网知识库的一部分。

按此阅读全文 "BBS2Blog—让BBS和Weblog互通" »

July 06, 2003

GNU工具箱

内容摘要:
GNU很推崇“工具箱”哲学:很多复杂的问题都可以通过几个更简单的工具通过一定的组合加以解决的。

shell 脚本本身的一些变量: $_ shell环境名称 如 /bin/sh ; $0 shell脚本本身,如 test.sh ; $1 $2 ..$9 命令行参数 test.sh -a -b 的$1 = -a $2 = -b

按此阅读全文 "GNU工具箱" »

June 09, 2003

NAT网关安装笔记

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!绝对不要远程调试防火墙配置!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

硬件需求:
    双网卡
    内存 > 64M
    硬盘 > 1G

注:
NAT网关本身效率都很高,所以即使在配置很低的机器上运行效率也是足够的(仍建议尽可能多的增加内存 > 256M),
如果需要记录日志做分析,则会产生很大的I/O操作并占用大量硬盘空间,建议使用SCSI硬盘并做日志轮循。
假设2块网卡分别按照以下网段设置:
内网网卡IP地址:192.168.0.1/255.255.255.0       本身为网关
外网网卡IP地址:111.222.111.222/255.255.255.192 网关:111.222.111.1

安全策略:
  • 作为网关,安全性非常重要,建议除了远程登录用的SSH外,尽可能多的停掉所有不相关服务。
  • 本安装文档只是最简单的配置,没有任何安全过滤规则,更多安全过滤规则需要根据实际情况补充。

按此阅读全文 "NAT网关安装笔记" »

June 06, 2003

基于反相代理的Web缓存加速——可缓存的CMS系统设计

内容摘要:
对于一个日访问量达到百万级的网站来说,速度很快就成为一个瓶颈。除了优化 内容发布系统的应用本身外,如果能把不需要实时更新的动态页面的输出结果转化成静态网页来发布,速度上的提升效果将是显著的,因为一个动态页面的速度往往 会比静态页面慢2-10倍,而静态网页的内容如果能被缓存 在内存里,访问速度甚至会比原有动态网页有2-3个数量级的提高

后台的内容管理系统的页面输出遵守可缓存的设计,这样就可以把性能问题交给前台的缓存服务器来解决了,从而大大简化CMS系统本身的复杂程度。

按此阅读全文 "基于反相代理的Web缓存加速——可缓存的CMS系统设计" »

May 10, 2003

Google排名优化-面向Google(Search Engine Friendly)的URL设计

内容摘要:不得不承认,将动态网页链接rewriting成静态链接是最保险和稳定的面向搜索引擎优化方式

此外随着互联网上的内容以惊人速度的增长也越来越突出了搜索引擎的重要性,如果网站想更好地被搜索引擎收录,网站设计除了面向用户友好(User Friendly)外,搜索引擎友好 (Search Engine Friendly)的设计也是非常重要的。进入搜索引擎的页面内容越多,则被用户用不同的关键词找到的几率越大。在Google的算法调查一文 中提到一个站点被Google索引页面的数量其实对PageRank也是有一定影响的。由于Google 突出的是整个网络中相对静态的部分(动态网页索引量比较小),链接地址相对固定的静态网页比较适合被Google索引(怪不得很多大网站的邮件列表归档和BLOG按日期归档的文档很容被搜的到),因此很多关于面向搜索引擎 URL设计优化(URI Pretty)的文章中提到了很多利用一定机制将动态网页参数变成像静态网页的形式:
比如可以将:
http://phpunixman.sourceforge.net/index.php?mode=man&parameter=ls

变成:http://phpunixman.sourceforge.net/index.php/man/ls

按此阅读全文 "Google排名优化-面向Google(Search Engine Friendly)的URL设计" »

May 06, 2003

基于Lucene/XML的站内全文检索解决方案:WebLucene

内容摘要:
为Lucene做一个通用XML接口一直是我最大的心愿:更方便的在WEB应用中嵌入全文检索功能,2004年时类似应用还很不成熟,但现在也许应该优先试试以Lucene为核心的Solr全文应用引擎;

  • 提供了XML的数据输入接口:适合将原有基于各种数据库的数据源导入到全文索引中,保证了数据源的平台无关性;
  • 通过了基于XML的搜索结果输出:方便了通过XSLT进行前台的结果显示;

MySQL \ / JSP
Oracle - DB - ==> XML ==> (Lucene Index) ==> XML - ASP
MSSQL / - PHP
MS Word / \ / XHTML
PDF / =XSLT=> - TEXT
\ XML
\_________WebLucene__________/
使用过程如下:
  1. 将数据用脚本导出成XML格式;
  2. 将XML数据源导入LUCENE索引;
  3. 从WEB界面得到XML结果输出,并通过XSLT生成HTML页面

按此阅读全文 "基于Lucene/XML的站内全文检索解决方案:WebLucene" »

April 12, 2003

多服务器的日志合并统计——apache日志的cronolog轮循

内容摘要:你完全不必耐心地看完下面的所有内容,因为结论无非以下2点:
1 用 cronolog 干净,安全地轮循apache“日”志
2 用 sort -m 合并排序多个日志
或者用: clfmerge合并日志
根据个人的使用经历:
1 先介绍apache日志的合并方法;
2 然后根据由此引出的问题说明日志轮循的必要性和解决方法,介绍如何通过cronolog对apache日志进行轮循;
中间有很多在设计日志合并过程中一些相关工具的使用技巧和一些尝试的失败经历……
我相信解决以上问题的路径不止这一条途径,以下方案肯定不是最简便或者说成本最低的,希望能和大家有更多的交流。


按此阅读全文 "多服务器的日志合并统计——apache日志的cronolog轮循" »

April 09, 2003

AWStats简介:Apache/Windows IIS的日志分析工具的下载,安装,配置样例和使用(含6.9中文定义补丁)

你完全不必耐心看完所有内容:简要安装说明如下
安装
http://sourceforge.net/projects/awstats/ 下载安装包后:
GNU/Linux:tar zxf awstats-version.tgz
awstats的脚本和静态文件缺省都在wwwroot目录下:将cgi-bin目录下的文件都部署到 cgi-bin/目录下:/home/apache/cgi-bin/awstats/
mv awstats-version/wwwroot/cgi-bin /path/to/apache/cgi-bin/awstats
把图标等文件目录复制到WEB的HTML文件发布目录下,例如:/home/apache/htdocs/ 下发布
更多的批量更新脚本等在tools 目录下,可以一并放到cgi-bin/awstats/ 目录下
升级国内主要搜索引擎和蜘蛛定义,安装GeoIP的应用库:C
http://www.maxmind.com/download/geoip/api/c/ 解包,编译安装
perl -MCPAN -e 'install "Geo::IP"' 或者使用纯Perl包  perl -MCPAN -e 'install "Geo::IP::PurePerl"'
下载GeoIP/GeoIPCityLite包:解包并部署到awstats目录下:

wget  http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
wget  http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

配置
将缺省awstats.model.conf 命名成common.conf
修改其中的一些配置选项:
LoadPlugin="decodeutfkeys"
LoadPlugin="geoip GEOIP_STANDARD /home/apache/chedong.com/cgi-bin/awstats/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /home/apache/chedong.com/cgi-bin/awstats/GeoLiteCity.dat"

创建awstats下创建:data 目录用于统计数据输出,缺省的统计输出是按月汇总的;对于日志非常大的最好选择按天统计输出,并修改awstats.pl: 设置LIMITFLUSH加10倍
$LIMITFLUSH =
  50000;   # Nb of records in data arrays after how we need to flush data on disk
可以有效提高统计的速度(减少磁盘IO),并避免按月汇总数据导致的统计文件过大;

按照一下样例设置配置文件:
Include "common.conf"
LogFile="/home/apache/logs/access_log.%YYYY-24%MM-24%DD-24"
SiteDomain="www.chedong.com"
HostAliases="chedong.com"
DefaultFile="index.html"
DirData="/home/apache/cgi-bin/awstats/data/"

按此阅读全文 "AWStats简介:Apache/Windows IIS的日志分析工具的下载,安装,配置样例和使用(含6.9中文定义补丁)" »

April 06, 2003

基于Google的学习过程

内容摘要:

Google的使用如此重要, O'Reilly有本专门的书介绍了如何优化网站面向Google的设计,和使用Google的一些技巧:
http://www.oreilly.com/catalog/googlehks/
这里我很想把以前遇到类似问题时在Google上寻找资料的思路和大家分享一下:

按此阅读全文 "基于Google的学习过程" »

March 06, 2003

内容管理系统(CMS)的设计和选型

内容摘要:

按此阅读全文 "内容管理系统(CMS)的设计和选型" »

ANT的安装/配置笔记

内容摘要:
ant是一个基于JAVA的自动化脚本引擎,脚本格式为XML。除了做JAVA编译相关任务外,ANT还可以通过插件实现很多应用的调用。

  1. ANT的基本概念:
  2. ANT的安装:解包,设置路径
  3. ANT的使用:最好的学习只不过是一个简单实用的例子起步……

按此阅读全文 "ANT的安装/配置笔记" »

January 09, 2003

小组开发环境搭建: apache+ftp+cvs+samba

内容摘要:本文主要介绍一些小组开发环境搭建中经常会遇到一些服务器服务设置,这些服务很多都是鉴于大部分的开发客户端仍然是Windows设置 的,每个服务都提供了简单的基本配置示范。包括:

  • IP管理(DHCP):服务器IP地址的管理和解析(结合SAMBA的WINS服务),开发客户端的IP管理;
  • WEB服务(APACHE):文档共享,CVS的WEB界面浏览,论坛工具等;
  • FTP服务(FTP):用于文件下载/共享;
  • 版本控制(CVS):程序源代码和文档的版本控制;
  • 文件共享(SAMBA):基于NETBIOS的文件共享,方便WINDOWS客户端的访问(比如一些工具的安装等);
  • 数据库服务器(MYSQL):一些应用的后台数据库服务;
  • 备份机制(wget + rsync):备份

很多设置是缺省按照在bash环境中,在tcsh环境中,有一些设置不太一致。

服务器规划如下:

 __________________             _______________
|APACHE WEB SERVER |            | File Backup |
|SAMBA SHARE       |            |             |
|DHCP SERVER       |            | DHCP Backup |
|CVS SERVER        |            | MySQL server|
|WIKI/BLOG SERVER  | <=Backup=> |             |
|Database backup   |            |             |
--------------------            ---------------

硬件准备:至少要2台服务器

  1. 从理论上说,任何系统的崩溃只是时间问题,而且谁也不能保证开发者不犯错误;
  2. 解决以上问题的办法只有:备份,备份,备份……

按此阅读全文 "小组开发环境搭建: apache+ftp+cvs+samba" »

January 06, 2003

Google搜索排名优化-面向搜索引擎的网站设计

内容摘要:
网站在搜索营销方面最主要的缺点:

  1. 行业知识:不知道搜索引擎对吸引的新用户的重要性,在搜索引擎排名服务中追求“傻瓜相关”,购买一些其实没有太多实际意义的行业关键词。其实能够用户输入的关键词越多,其目标性越强,这样的客户价值越高。用户能够直接定位到产品具体内容页比到网站首页有价值的多;
  2. 发布技术:网站的网页进入Google的索引量非常小,主要是由于大量使用动态网页造成的。需要将动态页面链接改写成静态 链接
  3. 页面设计:页面标题重复,关键词不突出,过渡使用JavaScript脚本/图片/Flash等不适合搜索引擎索引的非文本形式;在用户友好(user friendly)方面和机器友好(robots friendly)之间的平衡;
而以上这些问题的根本原因还是网站自身缺乏日志统计分析造成:没有统计就无法看到并评估SEO对网站自身产生的巨大影响。

按此阅读全文 "Google搜索排名优化-面向搜索引擎的网站设计" »

December 09, 2002

Oracle 8i在GNU/Linux上的安装笔记

RedHat 7.3/8 下的Oracle 8i安装笔记

硬件需求
========
至少256M物理内存

系统准备
========
redhat8按server方式安装需要增加的安装包大类:
1 包含一个X系统,建议使用GNOME,
2 将开发工具包DEVELOP TOOLS选上,标准的GCC工具等就有了。
3 建议将NETWORK UTILIETY选上,nmap mtr之类的小工具很有用
安装大约1.4G空间

安装后将语言环境设置缺省的en_US.UTF-8 (在RedHat 7.3下缺省是en_US.iso885915)改成en_US
root#vi /etc/sysconfig/i18n
改成:
LANG="en_US"
SUPPORTED="en_US:en"

按此阅读全文 "Oracle 8i在GNU/Linux上的安装笔记" »

December 06, 2002

如何评价一个网站的人气(Link Popularity Check)

介绍通过搜索引擎的一些隐含命令评价网站的“人气”。你完全不必耐心的看完后面所有的内容:因为他们已经过时了,http://www.alltheweb.com/提供了一个更加强大的反相链接统计工具:urlinfo
http://www.alltheweb.com/urlinfo?q=www.chedong.com

结果类似如下:Findall 54 external web pages that link to "www.chedong.com"
Findall 27 external web pages that contain the term "www.chedong.com"
Find all 162 web pages indexedunder "www.chedong.com"
Discover who owns"chedong.com"
See how "www.chedong.com"used to look

按此阅读全文 "如何评价一个网站的人气(Link Popularity Check)" »

September 09, 2002

Resin学习笔记

  1. 将resin-version/contrib/init.resin.in复制到/etc/rc.d/init.d/resin
  2. 修改resin中的一些设置:JAVA_HOME RESIN_HOME USER 等
  3. 用/sbin/chkconfig resin on将RESIN服务在启动级别345设置成自启动
  4. 在慢速CPU的机器上启动时,需要加入一个15秒的延时帮助JAVA启动

按此阅读全文 "Resin学习笔记" »

August 06, 2002

Lucene:基于Java的全文检索引擎简介

Lucene是一个基于Java的全文索引工具包。

  1. 基于Java的全文索引引擎Lucene简介:关于作者和Lucene的历史
  2. 全文检索的实现:Luene全文索引和数据库索引的比较
  3. 中文切分词机制简介:基于词库和自动切分词算法的比较
  4. 具体的安装和使用简介:系统结构介绍和演示
  5. Hacking Lucene:简化的查询分析器,删除的实现,定制的排序,应用接口的扩展
  6. 从Lucene我们还可以学到什么
另外,如果是在选择全文引擎,现在也许是试试Sphinx的时候了:相比Lucene速度更快,有中文分词的支持,而且内置了对简单的分布式检索的支持;

按此阅读全文 "Lucene:基于Java的全文检索引擎简介" »

从 汉化 到 国际化

内容摘要:

Java对输入输入首先有一个“字节流”到“字符流”之间的编码/解码过程,这个设置是根据系统配置决定的,为什么PHP之类的应用很少有字符集问题而Java有很好的国际化机制,却经常出现乱码问题呢?

简单的举例:
有一个包含“你好”这2个中文字的文件实际上是4个字节组成的:C4 E3 BA C3
在英文操作系统中缺省的编码解码方式是缺省编码方式是ISO8859,所以直接从文件中读取的结果是4个的字节,按ISO8859解码后在程序中操作的是4个Java字符,虽然每个JAVA字符是16位Unicode,但每个字符仍是8位字节的映射\u00C4\u00E3\u00BA\u00C3,因此处理的仍是“英文”。而显示过程中,是浏览器将字节流正确的显示成了相应的中文。

而一个Java应用在GBK编码方式的操作系统中,直接从文件中读取4个的字节后,按GBK方式解码后是2个16位的Java字符\u4F60\u597D,每个字都是相应Unicode的CJK区块所对应的中文。

更多的例子请参考:Java的中文处理学习笔记

这也就是为什么在php等应用很少出字符集问题的原因:在服务器端环境缺省一般是英文(ISO8859-1),等于全部处理使用的都是按字节方式处理的。数据输入输出过程中编码方式完全不被改动,因此乱码问题很少出现。而Java实际上提供了把每个中文直接当成1个“字”而不是2个字节处理的机制,主要的乱码问题往往是输入输出时编码解码方式不一致造成的。而且通过Unicode机制,程序除了实现程序界面根据本地化的适应外,甚至程序处理的内容本身的在不同字符集的操作系统中也是可以通用的,比如:在繁体中文操作系统中编辑的内容,在简体中文操作系统中也能正常的查询。以下例子可能更说明问题:

  1. JAVA应用的中文问题:如何通过GNU/Linux系统的本地化设置让JAVA应用支持中文
  2. Java Web应用设计中的中文问题:通过web.xml设置解决URLEncoder.encode()方法和系统缺省编码方式相关的问题
  3. 以GOOGLE的搜索引擎为例:说明如何将国际化和本地化应用到自己的应用设计中(UniCode inside Localization outsite)

按此阅读全文 "从 汉化 到 国际化" »

XSLT简介:Google的XML接口的XSLT设计

google_xml_xslt.ppt

Google的XML数据格式定义:http://www.google.com/google.dtd

其它一些关于XSLT的演示文档:

XSL Tutorial 一个XSL教程,也是一个很好的XSLT在线手册:包括 XPATH XSLT函数参考和示例

按此阅读全文 "XSLT简介:Google的XML接口的XSLT设计" »

July 11, 2002

Java的中文处理学习笔记:Hello Unicode(3)

试验3:WEB应用中的输入输出中的编码问题:Java是为做国际化应用设计的,Servlet应根据浏览器语言设置自动切换字符集配置

首先一个概念:即使是基于Java的WEB应用,在服务器和客户端之间传递的仍然是字节流,比如我从一个中文客户端的浏览器表单中提交“世界你好”这4个中文字到服务器时:首先浏览器按照GBK方式编码成字节流CA C0 BD E7 C4 E3 BA C3,然后8个字节按照URLEncoding的规范转成:%CA%C0%BD%E7%C4%E3%BA%C3,服务器端的Servlet接收到请求后应该按什么解码处理,输出时又应该按什么方式编码行字节流呢?

在目前的Servlet的规范中,如果不指定的话通过WEB提交时的输入ServletRequest和输出时的ServletResponse缺省都是ISO-8859-1方式编/码解码的(注意,这里的编码/解码方式是和操作系统环境中的语言环境是无关的)。因此,即使服务器操作系统的语言环境是中文,上面输入的请求仍然按英文解码成8个UNICODE字符,输出时仍按照英文再编码成8个字节,虽然这样在浏览器端如果设置是中文能够正确显示,但实际上读写的是“字节”,正确的方式是应该根据客户端浏览器设置ServletRequest和ServletResponse用相应语言的编码方式进行输入解码/输入编码,HelloUnicodeServlet.java就是这样一个监测客户端浏览器语言设置的例子:

按此阅读全文 "Java的中文处理学习笔记:Hello Unicode(3)" »

July 10, 2002

Java的中文处理学习笔记:Hello Unicode(2)

试验2的一些结论:

  1. 所有的应用都是按照字节流=>字符流=>字节流方式进行的处理的:
    byte_stream ==[input decoding]==> unicode_char_stream ==[output encoding]==> byte_stream;
  2. 在Java字节流到字符流(或者反之)都是含有隐含的解码处理的(缺省是按照系统缺省编码方式);
  3. 最早的字节流解码过程从javac的代码编译就开始了;
  4. Java中的字符character存储单位是双字节的UNICODE;

按此阅读全文 "Java的中文处理学习笔记:Hello Unicode(2)" »

July 09, 2002

MySQL服务维护笔记:Linux下的安装与分布式规划 [附样例配置文件]

内容摘要:使用MySQL服务的一些经验,主要从以下几个方面考虑的MySQL服务规划设计。以下就是针对MySQL作为专门的数据库服务器的优化建议:

  1. MySQL服务的安装/配置的通用性;
  2. 系统的升级和数据迁移方便性;
  3. 备份和系统快速恢复;
  4. 数据库应用的设计要点;
  5. 一次应用优化实战;
对于高负载站点来说PHP和MySQL运行在一起(或者说任何应用和数据库运行在一起的规划)都是性能最大的瓶颈,这样的设计有如让人一手画圆一手画方, 这样2个人的工作效率肯定不如让一个人专门画圆一个人专门画方效率高,让应用和数据库都跑在一台高性能服务器上说不定还不如跑在2台普通服务器上快。而将数据库和前端分离开以后: MySQL有上百的启动和运行参数选项,最主要的仍然是如何将后台的MySQL分布到多台服务器上,充分利用多台服务器的I/O和缓存就是最主要的问题了;

按此阅读全文 "MySQL服务维护笔记:Linux下的安装与分布式规划 [附样例配置文件]" »

Java的中文处理学习笔记:Hello Unicode

不知道你有没有这样的感受:为什么PHP很少有乱码问题而用Java做WEB应用却这么麻烦呢?为什么在Google上能用简体中文查到繁体中文,甚至日文的结果?而且用Google的时候发现它居然能自动根据我使用浏览器的语言选择自动调出中文界面?

很多国际化应用的让我理解了这么一个道理:Unicode是为更方便的做国际化应用设计的,而Java核心的字符是基于UNICODE的,这一机制为应用提供了对中文“字”的控制(而不是字节)。但如果不仔细理解其中的规范,这种自由反而会成为累赘,从而导致更多的乱码问题:

  1. 关于字符集的一些基本概念;
  2. 试验1:显示系统的环境设置和支持的编码方式;
  3. 试验2:系统缺省编码方式对Java应用的输入输出影响;
  4. 试验3:在WEB应用中输出和输出中的字符集问题;

按此阅读全文 "Java的中文处理学习笔记:Hello Unicode" »

OutLook Express邮件的HTML归档

内容摘要:通过几个perl应用的组合,介绍个人邮件的HTML归档方法

员工的EMAIL对于公司来说也是一份非常有用的文档资源,工作EMAIL中/不仅包含了大量的工作内容(比如客户信息,工作进展情况等),从中还可以做进一步的分析挖掘,可以作为对已有的工作流程/员工绩效评估的依据。但对于目前大部分缺乏知识管理的的公司来说,工作邮件一般缺乏集中管理,邮件保存在员工个人的机器里。就算员工走的时候没有把硬盘格式化,接受工作的新员工往往也缺乏邮件导入的技能,就算成功的将前任邮件导入,整理前任上千封工作EMAIL也是一件非常恐怖的事情。因此,留住员工的邮件后,内容的高效访问手段就显的非常重要了。

按此阅读全文 "OutLook Express邮件的HTML归档" »

July 06, 2002

Hello Unicode ——JAVA的中文处理学习笔记

不知道你有没有这样的感受:为什么PHP很少有乱码问题而用Java做WEB应用却这么麻烦呢?为什么在Google上能用简体中文查到繁体中文,甚至日文的结果?而且用Google的时候发现它居然能自动根据我使用浏览器的语言选择自动调出中文界面?

很多国际化应用的让我理解了这么一个道理:Unicode是为更方便的做国际化应用设计的,而Java核心的字符是基于UNICODE的,这一机制为应用提供了对中文“字”的控制(而不是字节)。但如果不仔细理解其中的规范,这种自由反而会成为累赘,从而导致更多的乱码问题:

  1. 关于字符集的一些基本概念;
  2. 试验1:显示系统的环境设置和支持的编码方式;
  3. 试验2:系统缺省编码方式对Java应用的输入输出影响;
  4. 试验3:在WEB应用中输出和输出中的字符集问题;

按此阅读全文 "Hello Unicode ——JAVA的中文处理学习笔记" »

Apache 1.3.x的安装与配置笔记

如果重新规划Web服务器:推荐使用Nginx Web服务器 http://blog.s135.com/nginx_php_v5/

内容摘要:

Apache是一个历史悠久并且功能十分强大的WEB服务器,但其丰富的功能对于一个新手来说往往不知道从何下手。我个人感觉Apache的设计充 分体现了模块化设计的优势,通过在动态模块加载(DSO)模式下的安装,任何子应用模块都可以通过配置文件的简单修改进行积木式的灵活配置。安装的过程可 以从简单的静态html服务开始,一个模块一个模块的学习使用。从单纯的HTML静态服务(core),到复杂的动态页面服务(core + php, core + resin, core + php + mod_gzip, core + resin + mod_expire)。

本文主要从简化安装==>性能调优==>维护方便的角度,介绍了WEB服务的规划、HTTPD安装/应用模块配置、升级/维护等过程。 让Apache和PHP,Resin等应用模块的独立升级,完全互不影响。

  1. WEB应用容量规划:根据硬件配置和WEB应用的特点进行WEB服务的规划及一些简单的估算公 式;
  2. Apache安装过程:apache的通用的简化安装选项,方便以后的应用的模块化配置;
    修改 HARD_SERVER_LIMIT:
    vi /path/to/apache_src/src/include/httpd.h
    #define HARD_SERVER_LIMIT 2560 <===将原来的 HARD_SERVER_LIMIT 256 后面加个“0”
    apache编译:
    ./configure --prefix=/home/apache --enable-shared=max --enable-module=most
  3. 可选应用模块/工具的安装:php resin mod_gzip mod_expire及各个模块之间的配合;
    mod_php安装:./configure --with-apxs=/home/apache/bin/apxs --enable-track-vars --with-mysql
    mod_resin安装:./configure --with-apxs=/home/apache/bin/apxs
    mod_gzip安装:修改Makefile中的 apxs路径:然后make make install
    工具:日志轮循工具cronolog安装:http://www.cronolog.org
  4. 升级/维护:看看通用和模块化的安装过程如何简化了日常的升级/维护工作;
    按照以上的方法:系统管理员和应用管理员的职责可以清楚的分开,互相独立。
    系统安装:系统管理员的职责就是安装好一台DSO模式的Apache,然后COLON即可,
    应用安装:由应用管理员负责具体应用所需要的模块,比如PHP Resin等,并设置httpd.conf中相关的配置。
    系统升级:系统管理员:升级操作系统/升级Apache
    应用升级:应用管理员:升级应用模块,PHP Resin等。

按此阅读全文 "Apache 1.3.x的安装与配置笔记" »

April 06, 2002

C Java PHP Perl Python的程序代码美化工具使用

内容摘要:
写本文的目的无非是2个:

  1. 如果前任程序员缩进非常不整齐的代码非常影响现任维护者的代码阅读速度。
  2. 新的项目代码(无论在什么编辑环境下编写)都能够非常好的适应公司的缩进规范,可以便于开发者之间的交流。

如果马上能从以下列表中找到你需要的就完全不必耐心的看到最后:相应工具包中的文档会有更详细的使用说明

c, c++ c# ==>   indent   Astyle

java ==> astyle Jalopy Jacobe ImportScrbber

php ==> phpCodeBeautifier

perl ==> perlTidy

python ==> Pydent

asp ==> VBSBeaut

按此阅读全文 "C Java PHP Perl Python的程序代码美化工具使用" »

March 13, 2002

WebAlizer的配置说明(含Windows下的for IIS版)

WebAlizer是一个开源的高性能日志分析程序,以下是配置文件的摘要翻译。

按此阅读全文 "WebAlizer的配置说明(含Windows下的for IIS版)" »

February 06, 2002

CVS使用手册

CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。工作模式如下:

       CVS服务器(文件版本库)
/ | \
(版 本 同 步)
/ | \
开发者1 开发者2 开发者3

作为一般开发人员挑选2,6看就可以了,CVS的管理员则更需要懂的更多一些,最后还简单介绍了一些Windows下的cvs客户端使用,CVS远 程用户认证的选择及与BUG跟踪系统等开发环境的集成问题。

  1. CVS环境初始化:CVS环境的搭建 管理员
  2. CVS的日常使用:日常开发中最常用的CVS命令, 开发人员 管理员
  3. CVS的分支开发:项目按照不同进度和目标并发进行 管理员
  4. CVS的用户认证:通过SSH的远程用户认证,安全,简单 管理员
  5. CVSWEB:CVS的WEB访问界面大大提高代码版本比较的效率 管理员
  6. CVS TAG:将$Id$ 加入代码注释中,方便开发过程的跟踪开发人员
  7. CVS vs VSS: CVS和Virsual SourceSafe的比较 开发人员 管理员
  8. WinCVS: 通过SSH认证的WinCVS认证设置
  9. 基于CVSTrac的小组开发环境搭建:通过CVSTrac实现web界面的CVS用户管理,集成的BUG跟踪和WIKI交流
  10. CVS中的用户权限管理:基于系统用户的CVS权限管理和基于CVSROOT/passwd的虚拟用户管理

一个系统20%的功能往往能够满足80%的需求,CVS也不例外,以下是CVS最常用的功能,可能还不到它全部命令选项的20%,作为一般开发人员平时会用cvs update和cvs commit就够了,更多的需求在实际应用过程中自然会出现,不时回头看看相关文档经常有意外的收获。

按此阅读全文 "CVS使用手册" »

最近评论

Creative Commons(创作共用)授权
此 Blog 中的日记遵循以下授权 Creative Commons(创作共用)授权.
Powered by
Movable Type 3.36