2005年7月1日星期五

令人震撼的Google Maps

  今天看到别人介绍的Google Maps地图服务,据说很“酷”。于是也上去看了一下。一上这个地图网站,我就被彻底震撼了,这是一种从来没有过的震撼。我竟然能够清晰看到中国任何一个地方的卫星图片,一些分辨率大的城市竟然都可以看到每条街道的楼房甚至街上的汽车。GOOGLE让我们看到了整个世界,感谢GOOGLE,特别是在中国,如果没有GOOGLE我可能一辈子也看不到自己居住城市的清晰的卫星图片。

  Google Maps是Google公司提供的电子地图服务,包括详细的卫星照片。能提供传统地图和不同分辨率的卫星地图。

深圳卫星图

  深圳卫星鸟瞰图,是不是酷毙了啊。

深圳华强北赛格大厦

  深圳华强北赛格大厦鸟瞰图。

上海金茂大厦和东方明珠电视塔

  上海金茂大厦和东方明珠电视塔的鸟瞰图。

北京天安门广场

  北京天安门广场鸟瞰图。

  目前我看到香港、北京、深圳、珠海、上海可以提供近距离的鸟瞰图,但是重庆、广州、沈阳、济南、西安等省会城市现在还不提供近距离的鸟瞰图。不过我估计,提供这种清晰的近距离鸟瞰图,不但有国际风险,而且其数据源、价格、实时性等方面都有问题,估计不是短时间内能搞定的。

  Google Maps做作为Google公司提供的地图服务,包括局部详细的卫星照片。它能提供两种图:一是矢量地图;二是不同分辩率的卫星照片。矢量地图目前只有美国和日本有,卫星地图全世界都有,但不同地区的卫星地图分辨率有所区别。

2005年6月25日星期六

选购国外虚拟主机的一些心得体会

  我购买国外主机有两个月时间了,对如何购买的经验可以说有一些了,下面是我在这两个月时间内寻找和购买国外主机的一些经验之谈,希望能对国内一些也需要购买国外主机的人有一些帮助。

  国外主机的特点

  大多数是PHP+MYSQL+APACHE+CPANEL的主机,其中CPANEL是一个非常强大的主机管理软件,而PHP、MYSQL和APACHE是免费软件。ASP空间的主机少而且贵,ASP+SQLServer的主机估计是很高价格了,当然对于国内那些使用盗版WINDOWS+SQLSERVER就不一样的了,国内主机还是敢于提供ASP+SQLServer的盗版主机的。

  速度问题:从国内访问,有的速度快,有的比较慢:FTP上传速度是10k左右,主要和线路有关,从美国访问速度都差不多,如何选择国内访问速度最快的主机,这主要看运气了。

  服务器上限制较少:空间一般都非常大,从几百M到数G的都有,价格基本差不多;没有并发1个FTP等限制,没有限制使用:phpinfo()和其他命令执行等;允许APACHE原始日志/错误日志访问(有后台日志轮循),错误日志很重要,否则安装CGI程序根本无法调试,此外,很多还提供了自动的AWStats日志统计服务。

  流量是金钱:如果说国外主机的限制,主要是流量的限制。一般每月20G流量的主机基本上是5到10美元左右。不要相信什么“Unlimited Bandwidth”(不限流量)这种鬼话,如果有,要么就是纯粹的欺诈,要么就是出口带宽非常低(这样其实还是限制流量)。对于一般网站来说,10G到20G的流量已经是足够了,因此还有购买有流量限制的主机安全一些,速度也不会因此受到限制。

  如何选择主机商

  有人推荐iPowerWeb,midPhase,PowWeb,Globat,LunarPages等五个主机,但是我不推荐这五个,别人之所以推荐是因为推荐注册会有收入分成,真正好的主机才不会通过收入分成的方式推广,那样只能造成过度销售。特别是PowWeb的主机很多IP都在国内无法访问。而且其价格个人感觉偏高(每月8美元左右)。

  实际上,价格便宜而服务好的主机商也有。但是20G流量的主机如果低于5美元,那还是比较难找的,而且也有一定风险,建议使用按月支付的方式,慢慢寻找好的主机。

  按月支付的主机应该是首选的,按年支付的主机不建议选择,那些属于买空卖空型,大多数是Reseller,风险很高。按月支付的好处是,如果你发现这个主机速度很慢或者服务不好,那下个月就可以中止支付而去选择其他主机,对于个人来说风险较小。一般较为自信的大型主机商也乐于提供按月支付方式。

  对于国内一些代理出售国外主机的Reseller,其价格也相当高,不建议选择。

  关于主机的支付

  首先要有一个信用卡,建议使用招商银行的信用卡,因为其服务真的很不错,网上银行功能也强大,没有美元的用户还可以使用其人民币自动还款的功能。

  其次,需要申请一个PAYPAL帐号。如果你信用卡的信用额度较高,而你又在网上购物较多的话,必需申请一个PAYPAL帐号,并使用PAYPAL帐号来支付费用给主机商。

  千万不要直接使用信用卡来支付主机商费用,那样的风险是非常大的,除非你确认你的主机商信用和技术能力都足够高。
 

2005年6月24日星期五

常用新闻组服务器

  新闻组是个人向新闻服务器所张贴邮件的集合。

  您几乎可以找到任何主题的新闻组。虽然某些新闻组是受到监控的,但大多数不是。对于受监控的新闻组,其“拥有者”可以检查张贴的邮件、提出问题,或删除不适当的邮件等等。任何人都可以向新闻组张贴邮件。新闻组不需要成员资格或加入费用。

  Internet 服务提供商必须为您提供与一个或多个新闻服务器的链接,以便在新闻组阅读器中使用新闻组。在新闻组阅读器中为每台需要的服务器设置完帐户后,您就可以在该新闻服务器上的新闻组中随意阅读和张贴邮件了。

  找到喜爱的新闻组时,您可以“预订”它,这样它会显示在新闻组阅读器的文件夹列表中。通过预订您可以方便地访问喜欢的新闻组,而不必在每次要访问一个喜欢的新闻组时去翻阅服务器上冗长的新闻组列表了。

  常用新闻组服务器

  宁波新闻组 news://news.cnnb.net

  微软新闻组 news://msnews.microsoft.com

  万千新闻组 news://news.webking.cn

  希网新闻组 news://news.cn99.com

  雅科新闻组 news://news.yaako.com

  香港新闻组 news://news.newsgroup.com.hk

  前线新闻组 news://freenews.netfront.net


  其他新闻组

  b.. news://news.freeforum.org
  c.. news://news.netteens.net
  d.. news://news.so-net.com.hk
  e.. news://freenews.netfront.net
  f.. news://news.3home.net
  g.. news://news.newsgroup.com.hk
  h.. news://news.popart.com.hk
  i.. news://news.hkhosting.com
  j.. news://wonderspace.net
  k.. news://news.hkpeople.net
  l.. news://news.netgod.org.hk
  m.. news://news.tatgod.com
  n.. news://ourrice.com
  o.. news://hknews.info
  p.. news://inhk.net
  q.. news://newsgroup.cc
  r.. news://news.dial-up.to
  s.. news://news.hkbookmarks.com
  t.. news://news.school.net.hk
  u.. news://news.wonderfuland.net
  v.. news://news.imart.com.hk
  w.. news://news.hkux.net
  x.. news://news.linux.org.hk
  y.. news://news.idclub.net
  z.. news://news.debugnet.com
  aa.. news://news.hkcampus.net
  ab.. news://news.nntp.cn
  ac.. news://news.ismart.net
  ad.. news://hk-system.com/hk.ive
  ae.. news://news.whiz.com.hk
  af.. news://news.siukeung.com
  ag.. news://news.asdfasdf.org
  ah.. news://news.visualmedia.com.hk
  ai.. news://news.net4hk.com
  aj.. news://news.nowstart.com
  ak.. news://news.idotworld.com
  al.. news://news.hkhost.net
  am.. news://news.hkpcug.org
  an.. news://news.easy4web.com
  ao.. news://news.adtic.com
  ap.. news://news.wyk.edu.hk
  aq.. news://news.w3.com.hk
  ar.. news://news.e-fever.org
  as.. news://news.loveclubhk.com
  at.. news://newsgroup.com.hk
  au.. news://news.d2g.com
  av.. news://news.hkxdd.net
  aw.. news://news.grace-ip.net
  ax.. news://news.chau.com.hk

2005年6月23日星期四

从7LOG迁移到Movable Type

  最近以来我在修改7LOG的程序上遇到很多麻烦,其代码改起来不是很好修改,而作者本人似乎也消声觅迹,不见踪影了,连其主页都被干掉了,看着需要添加的功能越来越麻烦,真的想去换到另外一个博客程序Movable Type了。

  为什么要迁移到Movable Type,原因很多。其一,MT是全世界使用最多的BLOG,资源很丰富。其二,MT发布的是静态文件,占用系统资源少,服务器的负荷也小。其三,虽然WORD PRESS也有Permalink仿真静态文件,但并没有降低系统负荷,而且在IIS环境下无法使用REWRITE功能,也并不是所有主机都开放REWRITE功能的。

  从7LOG可以平滑地迁移到Movable Type 3.17版本,并可以保证URL的延续性。当然Movable Type的默认配置下是不能完成的,首先修改LIB/MT/UTIL.PM文件的684行,将"%06d"去掉,修改745行的"cat"可以变更目录名称。使用“Use Old-Style Archive Links”,然后再发布一次看看,是不是产生的文件名称和地址与7LOG的一模一样。感叹:Movable Type的代码写的实在太健壮了,可维护性实在太好了。

  下面是从7LOG转换到Movable Type的SQL语句:

-- 导入文章

INSERT INTO mt_entry(entry_id, ntry_blog_id, entry_status, entry_author_id, entry_allow_comments, entry_allow_pings, entry_convert_breaks, entry_category_id, entry_title, entry_excerpt, entry_text, entry_text_more, entry_to_ping_urls, entry_pinged_urls, entry_keywords, entry_tangent_cache, entry_created_on, entry_modified_on, entry_created_by, entry_modified_by, entry_basename) select id, '1', '2', '1', '1', '0', '__default__', sort,title,'',resume,content,NULL, NULL, NULL,NULL, date,'20050622034340',NULL, NULL,id from blog_topic order by id

-- 导入目录索引

INSERT INTO mt_placement(placement_entry_id, placement_blog_id, placement_category_id, placement_is_primary) select id, '1', sort, '1' from blog_topic order by id

-- 导入评论

INSERT INTO mt_comment(comment_id, comment_blog_id, comment_entry_id, comment_ip, comment_author, comment_email, comment_url, comment_commenter_id, comment_visible, comment_text, comment_created_on, comment_modified_on, comment_created_by, comment_modified_by) select id, '1', topic_id, ip, author, email, '', '', '1', content, date, '20050622061716', NULL, NULL from blog_comment order by id

  最后发布的字体在中文环境下并不是很好看,可以修改styles-site.css文件,将font-size: x-small修改为font-size: 12px。
 

2005年6月19日星期日

彻底杜绝PHP的session cookie错误

  本文讨论的是如何彻底杜绝warning: Cannot add header information - headers already sent in......  这种令人莫明其妙的的错误。

只要你写过PHP代码,相信都遇上过这个大多时候都令人莫明其妙的warning吧..今天我们就来搞定它...............

看了PHP手册,回答如下:

消息“Warning: Cannot send session cookie - headers already sent。。。”或者“Cannot add header information - headers already sent。。。”。

函数 header(),setcookie() 和 session 函数需要在输出流中增加头信息。但是头信息只能在其它任何输出内容之前发送。在使用这些函数前不能有任何(如 HTML)的输出。函数 headers_sent() 能够检查您的脚本是否已经发送了头信息。请参阅“输出控制函数”。

意思是:不要在使用上面的函数前有任何文字,空行,回车,空格等。但。。。问题是,这答案并不令人满意。因为往往程序在其他PHP环境下运行却正常。
 

首先:这错误是怎么产生的呢?让我们来看看PHP是如何处理HTTP header输出和主体输出的。

PHP脚本开始执行时,它可以同时发送header(标题)信息和主体信息。 Header信息(来自 header() 或 SetCookie() 函数)并不会立即发送,相反,它被保存到一个列表中。 这样就可以允许你修改标题信息,包括缺省的标题(例如 Content-Type 标题)。但是,一旦脚本发送了任何非标题的输出(例如,使用 HTML 或 print() 调用),那么PHP就必须先发送完所有的Header,然后终止 HTTP header。而后继续发送主体数据。从这时开始,任何添加或修改Header信息的试图都是不允许的,并会发送上述的错误消息之一。

好!那我们来解决它:

笨方法:把错误警告全不显示!
掩耳盗铃之计,具体方法就不说了 ^_^#

解决方案:

1)适用于有权限编辑PHP。INI的人

打开php。ini文件(你应试比我清楚你的php。ini在哪里),找到

output_buffering =改为on或者任何数字。如果是IIS6,请一定改为ON,不然你的PHP效率会奇慢。

2)使用虚拟主机,不能编辑PHP。INI,怎么办?

简单:

在你的空间根目录下建立一个。htaccess文件,内容如下:

AllowOverride All
PHP_FLAG output_buffering On

不幸的情况是:还是不行?全部网页都不能显示啦?

那么,你可以打电话骂一通空间商,然后让他给你把apache的。htaccess AllowOverride打开

3)在PHP文件里解决

ob_start()
启用output buffering机制。 Output buffering支持多层次 -- 例如,可以多次调用 ob_start() 函数。

ob_end_flush()
发送output buffer(输出缓冲)并禁用output buffering机制。

ob_end_clean()
清除output buffer但不发送,并禁用output buffering。

ob_get_contents()
将当前的output buffer返回成一个字符串。允许你处理脚本发出的任何输出。

原理:

output_buffering被启用时,在脚本发送输出时,PHP并不发送HTTP header。相反,它将此输出通过管道(pipe)输入到动态增加的缓存中(只能在PHP 4。0中使用,它具有中央化的输出机制)。你仍然可以修改/添加header,或者设置cookie,因为header实际上并没有发送。当全部脚本终止时,PHP将自动发送HTTP header到浏览器,然后再发送输出缓冲中的内容。

2005年6月16日星期四

美女图片在网站上的应用

  网络是制造美女的沃土,美女又是拉动消费的动力,所以网络、美女和经济三者之间的关系相当微妙。一个销售产品的网站,在网站首页放一个美女靓妹,在国外几乎已经成为一种时尚和潮流,大家可以看看全球域名第一大销售商GoDaddy的首页,常年都有一张巨幅的美女图片。在这种绝妙的美女炒作之下,人们往往把眼球集中在美女的形象包装上,并因此而带动产品的销售业绩。

  因此,国内的产品销售网站也可以借鉴国外这一经验,在销售产品的首页放置一个美女图片,靠美女的人气带动公司产品的销售,毕竟看美女的人远比买产品的人要多,看的人多了,自然会有更多人来购买产品。

  说白了,“美女经济”就是“眼球经济”,就是商人们先以美女吸引公众注意力,继而从中获利的手段。这种经济,看上去很美,但不可过于依赖,“美女”只是一种中介,将消费者的注意力转移到产品上的经济活动。更为重要的是产品的质量和价格,一个物美价廉的产品才是真正赢得消费者喜爱的产品。

读书的女人最美丽

2005年6月13日星期一

使用Web标准建站校验及常见错误

  我们使用XHTML+CSS来重新设计我们的网站,如何知道自己制作的页面真的符合web标准?W3C和一些志愿者网站提供了在线校验程序,来帮助我们检查页面是否符合标准,并提供了修正错误的帮助信息。这些校验非常有用,是我调试页面第一步要做的事情。

  1.XHTML校验

  校验网址:http://validator.w3.org/

  校验方式:网址校验、文件上传校验

  校验成功,会显示"This Page Is Valid XHTML 1.0 Transitional!"。

  校验失败,会显示更多校验选项和错误信息。

  一般选择"Show Source"和"Verbose Output"可以帮助你找到错误代码所在行和错误原因。

  XHTML校验常见错误原因对照表

  No DOCTYPE Found! Falling Back to HTML 4.01 Transitional--未定义DOCTYPE。

  No Character Encoding Found! Falling back to UTF-8.--未定义语言编码。

  end tag for "img" omitted, but OMITTAG NO was specified--图片标签没有加"/"关闭。

  an attribute value specification must be an attribute value literal unless SHORTTAG YES is specified--属性值必须加引号。

  element "DIV" undefined---DIV标签不能用大写,要改成小写div。

  required attribute "alt" not specified---图片需要加alt属性。

  required attribute "type" not specified---JS或者CSS调用的标签漏了type属性。

  其中最最常见的错误就是标签的大小写问题了。通常这些错误都是关联的,比如忘记了一个</li>其他<li>标签都会报错,所以不要看到一堆的错误害怕,通常解决了一个错误,其他的错误也都没有了。

  2.CSS2校验

  校验网址:http://jigsaw.w3.org/css-validator/

  校验方式:网址校验、文件上传校验、直接贴入代码校验

  校验成功,会显示"恭喜恭喜,此文档已经通过样式表校验! "。

  校验失败,会显示两类错误:错误和警告。错误表示一定要修正,否则无法通过校验;警告表示有代码不被W3C推荐,建议修改。

  CSS2校验常见错误原因对照表

  (错误)无效数字 : color909090 不是一个 color 值 : 909090 ---十六进制颜色值必须加"#"号,即#909090

  (错误)无效数字 : margin-topUnknown dimension : 6pixels ---pixels不是一个单位值,正确写法6px

  (错误)属性 scrollbar-face-color 不存在 : #eeeeee --- 定义滚动条颜色是非标准的属性

  (错误)值 cursorhand不存在 : hand是非标准属性值,修改为cursor:pointer

  (警告)Line : 0 font-family: 建议你指定一个种类族科作为最后的选择 --W3C建议字体定义的时候,最后以一个类别的字体结束,例如"sans-serif",以保证在不同操作系统下,网页字体都能被显示。

  (警告)Line : 0 can't find the warning message for otherprofile --表示在代码中有非标准属性或值,校验程序无法判断和提供相应的警告信息。