江边闲话集

06/26/2008

谈解决方案

Filed under: 一技之长 — Tags: , — 张太国 @ 15:34

我怎么一老喜爱用解决方案这种词呢,难道解决方案是随便能用的么?看看我的文章里多少解决方案的文章:

  1. RMagick 2和ImageMagick不能正确显示图片的解决方案
  2. Blackberry上网问题解决方案

  3. InstallShield安装时出现“1152:error extracting"的解决方案

  4. WLW和Wordpress配置问题的解决方案  (这里

  5. "Premature end of script headers: dispatch.fcgi"终极解决方案

  6. 在Debian上部署Rails Apache+fcgi(或FastCgi)

  7. mongrel启动问题的解决方案

  8. ROR的数据库维护解决方案

  9. 不能安装/卸载Adobe Acrobat的解决方案

光标题包含该词的文章目前为止就有9篇,刚次我搜了一下,包括行文大概在15篇左右吧。

看来我对解决方案情有独钟。还记得以前阅读wangjianshuo的文章,他也动不动就比较,xxx and xxx。这恐怕也是一种习惯问题吧。

什么是解决方案?百度给的答案是:

解决方案就是针对某一问题,或行业 提出的一个解决问题的方案 ,看这里

看来我的解决方案只能针对前者了。每个解决方案都是针对一个问题。

我个人比较偏爱后者的解决方案,因为能够从整体上去考虑和把握一件事情,而小问题仅仅是解决一个问题。我认为KB倒是挺适合的。

既然如此喜欢用解决方案这个词,那就继续用吧。反正用了也不犯法。

RMagick 2和ImageMagick不能正确显示图片的解决方案

Filed under: 一技之长 — Tags: , — 张太国 @ 15:18

背景

将ImageMagick和RMagick都升级了。ImageMagick版本为6.4.1,RMagick为2.5.1。

在生成带有文字的图片时要么是空白要么是一团黑。

分析

不能正确显示图片,有很多方面的原因。这里最有可能的原因是填充的颜色不对。例如填充颜色为白色,那么会出现空白。若是将填充颜色设置为黑色,那就是一团黑了。为什么会出现这种情况?先从一下日志说起:

RMagick: delegate library support not built-in `/usr/local/share/ghostscript/fonts/n019003l.pfb’ (Freetype).

如果出现这种情况,说明文字的字体找不见,既然都无法正确显示文字,那么就由其填充色来代替。

解决

最新的ImageMagick看起来需要如下几个库:

  • freetype ,强烈建议把dev版本也装上
  • jpeg库
  • tiff
  • ghostscript
  • zlib

为了看看有哪些字体安装了,使用如下命令:

  convert -list font

返回结果可能为:

Font: Palatino-Roman
  family: Palatino
  style: Normal
  stretch: Normal
  weight: 400
Font: Symbol
  family: Symbol
  style: Normal
  stretch: Normal
  weight: 400
Font: Times-Bold
  family: Times
  style: Normal
  stretch: Normal
  weight: 700
Font: Times-BoldItalic
  family: Times
  style: Italic
  stretch: Normal
  weight: 700
Font: Times-Italic
  family: Times
  style: Italic
  stretch: Normal
  weight: 400
Font: Times-Roman
  family: Times
  style: Normal
  stretch: Normal
  weight: 400

返回的结果都是已经安装的字体。如果没有结果说明没有安装。在使用过程中,必须使用安装的字体。

也许你安装之后还是会出现以上错误。如果碰到这种情况,需要手工将字体copy到提示的目录下。例如`/usr/local/share/ghostscript/fonts。那么字体一般放在什么地方呢?一般放在

/usr/share/fonts

 

更多文章参看:

  1. 在Debian上部署Rails Apache+fcgi(或FastCgi)

  2. "Premature end of script headers: dispatch.fcgi"终极解决方案

06/24/2008

Blackberry上网问题解决方案

Filed under: Blackberry — Tags: , — 张太国 @ 19:10

在中国大陆地区,Blackberry上网一直以来是一个很大的问题,这在平常很多朋友问我这方面的问题可以看出。今天在这里详细说明一下。

问题:

Blackberry无法上网,或者我在A机器上可以上网,但是在B机器上不可以?

分析

为了搞清楚这个问题,我们必须明白Blackberry上网的原理。

先介绍一下其他设备上网的问题,大部分手机上网只需要开通网络就可以直接使用cmwap或cmnet(以中国移动为例).他们上网非常简单,即使碰见问题,只需要设置一下访问方式,网络入口,网关等就能解决。

Blackberry和他们不一样,Blackberry无法直接上网,若想上网需要MDS的配合,而MDS一般来说都是随着BES一起使用。既然涉及到BES,不得不提的是如果有MDS,也不能保证你一定可以上网,这和BES端的设置有关系。关于MDS和BES的相关知识在这里不做太多解释,毕竟是挺复杂的一块。所以Blackberry上网是需要MDS的。那么Blackberry是怎么使用MDS的服务呢?,那就是即将要讨论的Service Book,Service Book包含了Blackberry订制的服务,比如上网,OTA,contacts同步等。如果Service Book没有订制上网的服务,最后还是不能上网。

讨论到MDS,那么就顺带了解一下国内的使用情况。因为版权以及企业大小的问题,目前使用MDS的还不是特别多,但是民间有很多Blackberry机器,而且这些机器能够上网,他们是怎么上的呢?一般来说是使用了私人架设的MDS服务器,这样的服务器也很多见。这些问题是值得的。

解决方案

通过上面的分析,解决方案就有了。

可以遵循如下步骤:

  1. 检查是否有service book
  2. 检查service book是否有上网的服务
  3. 检查一下MDS是否打开,可能需要重启机器
  4. 如果以上都OK,检查一下防火墙的设置问题。

如果以上还是不能解决,可能由一下方面的原因引起:

  1. 是否订阅移动运营商的数据服务
  2. 你的机器是否真能上网
  3. 检查一下MDS(BES)服务器,至于为什么,上面的分析已经提及到。

对于开发者而言,如果写的程序不能上网,可以在试前面的步骤时,先检查一下下面的所说的内容:

在模拟器上是否真能上网。毕竟在模拟器上实现上网简单的多。

Powered by WordPress