目前用过一条码机主要是Godex 1100+这个型号的,感觉质量还不错。使用条码机会遇到一些问题,现总结一下。

1. 测纸。先关闭条码机,按往条码机的走纸按钮不放,打开条码机,待条码机响5声后放开,而条码机会自动检测纸的高度。
2. 方法基本,不同之处是等响四声后放开,可以使条码机恢复到出厂设置。
3. 条码纸如果是竖着的缝的,则需要把条码下下面用于识别标签纸间隔的传感器稳到竖缝之外,否则走纸也可能不正确。
4. 在某此时候,条码机可能需要重新写入程序,这需要与供应商联系取得写入程序和相应型号条码机的文件。

以上方法,正确性未得厂家证实,仅供参考。

Posted in | Comments(16)»

瓜哇岛钓鱼记 三月 12th, 2012

  瓜哇岛是印尼的岛屿之一,盛产咖啡而闻名于。

  不知道何时,来了个渔夫,开始在岛上挖鱼池,他把海里钓起来的鱼用细线系住,然后任它们在池塘里游。

  时间一长,鱼池里有各种各样的鱼了。有很大的,也有很小的。即使有线系着,这些鱼在里面仍然自由地生活。它们时而嘻戏,而且打斗,有时双排成队伍,象军队一样。不过有些鱼太小了,渔夫觉得没必要用线系着,而是在鱼池里用网隔了一小块,专门养这些小鱼。不过,其它凡是在池里的渔,都是有线系着的。所以,不论是大鱼还是小鱼,渔夫可以牵着线任意操作其中的渔。

  有些鱼已经完成了历史使命,失去了活力,渔夫觉得不再需要他们的时候,会把线去掉。这个时候,有一种鱼就开始发挥作用了,它是一种食腐鱼。它看见那些没有线系着的鱼,在适当的时候把它吃掉。当然,那些原本就没有线系着的小鱼,如果没活力了,也会被吃掉食腐鱼可不受那个隔网的限制。但那些仍然活蹦乱跳的鱼,就不会被吃掉。据说这种食腐鱼是渔夫通过基因技术创造出来的,大家都只是听说过,除了渔夫,没有人真正看见过,但鱼池里水也确实比较清,就算有死鱼,用不了多久也会消失。

  后来人们听说,渔夫效力于一家叫做太阳的公司,这些鱼配合起来可以做各种各样有用的事情,太阳公司把这种养殖方案向世界推广。后来又有两家公司也来抢生意,挖同样的鱼池,公司的名字都只有三个字母:IBM和BEA,这是经过太阳公司同意和认可以了的。两家公司挖的都是与太阳公司一样的鱼池,只是其中的水和食腐鱼有所不同,所以鱼在其中的活跃程度等方面也不一样。比如BEA的鱼池中的食腐鱼据说就比较强,IBM的鱼游得快一些等等。

  再后来,有一家公司坐不住了,也出了一套相似的钓鱼与养鱼方案。与原来自由钓鱼不同,它的方案是只能窗户里钓,不过鱼钓上之后,同样系了线,却是直在海里受,据说这样鱼会游得更快。不过有人也确实从窗子里看见某些渔游得快一点。这家公司叫MS。

  不过有些人虽然喜欢MS的养渔方案,却不喜欢它只能窗户里钓渔的方案,于是叫来了一只猴子,有了这只猴子,就可以在一只牛的背上钓,也可以在南极的企鹅堆里钓,据说还可以坐在太阳上面钓。猴子的名字是Mono,牛的名字叫FreeBSD。

  第一个来的那个渔夫,人们叫他高司令。

  此为SQL Server 2000中遇到。
  因本人所写程序是在原有数据库基础上进行更改,而原数据库并未严格按范示设计,我在增加表的时候,不得已采用以其个varchar(20)的字段进行连接查询。
  由于实际的查询语句比较复杂,此处只是简化后的例子。
  表 _z_product_type 是产品细类的表,结构如下:
_z_product_type_no  int
_z_product_type_name varchar(20)
数据如下:
1    实木
2   烤漆
3    汽车烤漆
4   印花烤漆
5  钢琴烤漆
6  钻石烤漆
7  PVC
 
另一个名为cplx的字段,与_z_product_type_name字段关联。
现执行如下语句,查询结果却无记录。
 
select  top 20* from _z_product_type left outer join xdzb on _z_product_type._z_product_type_name  = xdzb.cplxwhere _z_product_type._z_product_type_no = 5
其中 _z_product_type_no  为 3、4、5、6 时均是如此。
因实际的sql语句连接了多个表,起初怀疑是表的连接错误,但不是。
后 直接执行
select * from _z_product_type where _z_product_type_name='汽车烤漆'
居然也无结果。
怀疑数据库中 '汽车烤漆' 这个字符串后空格,但查询结果却看不到空格。但还是试着执行以下语句更新以下以防不测,于是
update _z_product_type  set  _z_product_type_name='汽车烤漆'
更新后,原来查询不出结果的语句,执行后居然有结果了。
后为了验证其后是否真不空格字符,执行了如下语句:
update _z_product_type set _z_product_type_name = _z_product_type_name + '测试'where _z_product_type_no = 5;
然后并且把查询分析器的查询结果改为了文本模式。
然后执行
select * from  _z_product_type ;
如果如下:
_z_product_type_no _z_product_type_name ------------------ -------------------- 1                  实木 2                  烤漆 3                  汽车烤漆 4                  印花烤漆 5                  钢琴烤漆 测试 6                  钻石烤漆 7                  PVC
有点奇怪,"测试"二字怎么换行了?原来在这条记录中,其'钢琴烤漆' 后面本来就有回车符。
执行
select ascii(  substring(_z_product_type_name,5,1) ),ascii(  substring(_z_product_type_name,6,1) ),ascii(  substring(_z_product_type_name,7,1) ) from  _z_product_type where _z_product_type_no = 5
结果如下:
 
----------- ----------- ----------- 13          10          178
 
看来真的是有回车符。
执行
update  _z_product_type set _z_product_type_name =  left( (_z_product_type_name,4)
之后,一直正常!
为了这几回车,花了几个小时检查程序!

 最近又用VB6和VBA开发,但在一次函数调用时发现了下奇怪的问题,就是在调用函数时,提示类型错误,现在另写一个例子如下:

Public Function zhengchu(a As Long, b As Long)
        zhengchu = (a - a Mod b) / b
End Function

Private Sub Command1_Click()
 Dim a , b  As Long
 Let a = 8
 Let b = 3
 MsgBox zhengchu(a, b)
End Sub

 后来不经意间又在调用另一个函数时出现这个问题,才发现原来是参数定义错误。一行定义多个long型方法如下:

 Dim a As Long, b  As Long

但然,每行定义一个不会错。

奇怪的时,那个错误的写法,VB在运行时并不会报错。

Godex提供dll编程和Windows驱动。本文只讨论使用EZPL开发,而针对使用Wiindows驱动的编程使用的是Windows API,在此不讨论。 使用Godex的QLabel-IV程序很容易编辑也标签,然后生成EZPL,然后调用dll中的sendcommand接口即可发送EZPL至打印机,当然,程序前后还要分别调用openport和closeport函数。但是按照手册中的例子会出现以下问题。 1. 调用setup函数不太方便。 手册中的例子是在openport后调用setup,但经测试,此函数并不需要,这给编程带来方便,只需要按行遍历EZPL文本即可进行打印,修改时也只需要修改EZPL文本,而不需要修改程序了。 2. 标签打印过程中会停顿。这是出现在连续打印多张不相同的标签时,轻则三五张停顿一次,严重时每打一张停顿一下。这一则影响效率,二则导致设备更快老化。要达到打印顺畅要解决两个问题。 其一,同一打印任务,不要反复openport和closeport。 其二,很多相同的命令只需要调用一次。 在QLabel-IV生成的EZPL脚本中,其中^L命令是开头,^E命令是执行。这两者之间则有AF, AE之类打印字符的命令。如果各标签对于^L之前的命令都是相同的,则只需要调用一次。以下给出Delphi的示例代码: procedure TForm1.Button2Click(Sender: TObject); var         i : integer ; begin  openport('6');    // 0-> LPT1; 1-> COM1; 2->COM2; 6 -> USB  sendcommand('^Q25,2');  sendcommand('^W100');  sendcommand('^H12');  sendcommand('^P1');  sendcommand('^S4');  sendcommand('^AT');  sendcommand('^C1');  sendcommand('^R3');  sendcommand('~Q+0');  sendcommand('^O0');  sendcommand('^D0');  sendcommand('^E12');  sendcommand('~R20');  sendcommand('Dy2-me-dd');  sendcommand('Th:m:s');         for i :=0 to 2  do         begin                 sendcommand('^L');                 sendcommand(PChar(StrPas('AG,60,100,1,1,0,0,CCCCCCCC') + IntToStr(i)));                 sendcommand(PChar(StrPas('AG,460,100,1,1,0,0,DDDDDDDDDD') + IntToStr(i)));                 sendcommand('E');         end;  sendcommand('^Q52,2'); //修改标签高度,将两张标签合为一张使用 25 + 25 + 2 = 52         for i :=0 to 2  do         begin                 sendcommand('^L');                 sendcommand('C1,001,+1,');                 sendcommand('AF,50,100,1,1,0,0,0^C1');                 sendcommand('AF,300,100,1,1,0,0,BBBBB');                 sendcommand('AF,50,200,1,1,0,0,0^C1');                 sendcommand('AF,300,200,1,1,0,0,CCCCC');                 sendcommand('E');         end;  closeport(); end;   需要注意的是,这里除了^L和^E命令,^Q命令也可以多次以现,但测试,修改后重复使用了^Q命令的程序打印出现停顿。 其三是性能。经测试,打印能否顺畅确与程序的性能有关,相同的程序,在配置较低(如PIII级别)的计算机上,打印过程中出现停顿,而在性能较高的计算机(AMD Dual 4600+ )上却打印顺畅,并且当性能较高的计算机有其它较占计算资源的程序运行时,也会出现停顿。所以,第一要使用性能足够的计算机。其二,从开发者的角度,程序的性能还与所使用的开发技术和语言有关。比如相同算法,用VB6开发的程序,相对使用Delphi开发的程序性能就要低,要尽可能选择性能较高的语言。第三,软件开发上使用算法,将要实际的两张甚至三张标签纸当作一张来打印。这样,在走纸速度相同的情况下,计算机有更多时间来计算出打印每张标签的所需要的数据。 其四,使用性能较高的接口。使用打印机接口或USB 接口对打印速度没影响,两者还看不出区别。但如果使用com接口,则可能会有影响。 通过注意以上几项,可以让打印顺畅。
Epiphany也是基于webkit核心的浏览器,一般安装Debian过程中如果选择了安装桌面,则它会自动安装上。 但是如果是自己定制安装xwindow,则需要手动安装它。与安装chorme一样,它在Debian源里面的名字也不是epiphany,而是epiphany,所以需要以下命令安装: apt-get install epiphany-browser Epiphany属于我比较喜欢用的浏览器,基于webkit核心的浏览器速度上明显快一些。同样基于webkit的Chrome浏览器虽然不错,但只能运行在少数平台。
Posted in UNIX | Comments(19)»

  这几天看精简指令系统的处理相关文章,看了Power,安腾等, 看MIPS,然后看到龙芯相关的上面来了。
  还不太懂电脑的时候,以为世界上好多公司可以生产电脑全套器件。后来才知道,能生产CPU就那么几家,而民用化的就两三家。只所以说两三家,是因为国民办半异体卖给VIA了,实际再也很少见到。前一两年我还买过威盛的芯板,功率确实很小,不过以后相对凌动的主板是否有优势还很难说。
  而对于龙芯,个人以为它不适合民用化,至少暂时不行,原因如下:
  1. 市面上绝大多民用计算机安装的是Windows操作系统,而绝大多数常用软件是针对Windows的,特别是游戏。
  2. 龙芯在功耗上的优势并不突出。一台计算机,CPU的功能可能往往非常大,但它只是整个功耗的一部份。当初赛扬刚出来时也只有18w左右的功率,后来越来越大。像带凌动CPU的主板,其显示芯片的发热往往也不小。这就好比一个人减肥,腰上的减了,但大腿上的还没减,效果其实并不明显。反而在这个时候,人们对性能要求更看重。如果CPU性能不够,则需要人等待更多时间,而这里其它却在白白的浪费能源。而且,龙芯现在用于桌面操作系统,实际是xwindow,而xwindow的架构决定了其响应的缓慢,而且绘制图形需要更多的计算。经常有用户反映,笔记本使用xwindows,风扇不停地呼呼转,哪怕是冬天;而使用Windows的时候状况要好得多,而且电池使用的时间也长一些。
  3. 用户。中国没几个人用xwindow的桌面。
  4. 软件。xwindow下的应用程序虽多,但流行的桌面软件少。
  5. 没有明显价格优势。由于一套电脑设备,CPU只占很少一部分,所以其优势并不明显。
  这是主要的,还有其它一些方面的原因,对比做服务器上的优势就是做桌面的劣势。
  看龙芯也发展了这么多年了,虽然说很快,但也不快,因为IT本身就是个快速的行业。龙芯目前最好是放弃桌面平台,把精力集中在服务器领域,原因如下:
  1. 服务器往往配置的设备少一些。比如服务器主板,你就不需要开发声卡,也不会集成太好的显卡,也不需要管摄像头,USB也不需要支持得太多,关键需要要的就是两样:网卡,硬盘或磁盘阵列。当然,这里是指普通的小型服务器。
  2. 功耗不再是问题。因为服务器是常开,所以不用像笔记本那样考虑功耗问题。虽然民用产品不仅仅是笔记本,但目前民用产品中笔记本的销量超过台试机。
  3. 龙芯在服务器方面的速度差距相民用产品的差距要小,这是与intel之类产品相比。服务器需要的多是整数运算,而intel与amd在浮点运算上的强劲估计龙芯与之的差距远远大于整数运算的差距。即使缩小差距,但市场上的软件特别是游戏和视频软件多是针对intel优化的,龙芯也发挥不出来。而且,世界上强劲服务器都是基于精简指令系统的,所以有理由相信龙芯在服务器上更能发挥出该有的性能。
  4. 可以通过增加CPU提高性能。目前龙芯性能没有优势,但一个不行两个来,反正有价格优势。民用产品这样做也不太能行得通。
  5. 软件不是问题。已经有多种类UNIX操作系统支持MIPS,那基本上也就支持龙芯了。这些操作系统下面有丰富的软件,其中针对服务器方面的软件一般是不需要图形界面就可以运行的。
  6. 用户不是问题。操作类UNIX操作系统,其方法是类似的,这些用户都是专业人员,使得这些软件没有难度,方法与x86下是一样的。
  7.达到高可用性相对更容易。由于intel与amd等具有更丰富的经验设计服务器CPU,姑且譩断其CPU比龙芯更稳定(有人说intel处理器比amd的稳定。但是服务器稳定还有其它很多因素,比如主板,电源。可以在这些方面做得够好,以弥补龙芯的不足。
  8. 价格不是问题。相对而且,intel与amd等服务器CPU出奇的贵。由于服务器不需要像民用产品那么多外围设备,所以相对而言价格优势更容易体现出来。
  从前听说某论坛用龙芯做过服务器,据说还很稳定。
  哪天有龙芯的又路主板就是买个试试,希望不要太贵。

试用FreeBSD8.2的体验 九月 22nd, 2011

  一台旧机器,用RAM Stress测试了内存没有问题之后,想着装个FreeBSD操作系统。   主要硬件是Celeron 800的CPU,512M SDRAM内存。安装倒是比较顺利,说一下使用的感受。   一、FreeBSD8的CD光盘适合安装纯提示符面,而DVD光盘适合安装更多一点的软件,包括安装图形界面。这一点比以前方便,记得以前不得地换CD,很麻烦。   二、FreeBSD的pkd_add 命令比较好用了,不用加版本号就可以安装软件,试安装了unzip, wget等软件,均安装成功。这是因为官方服务器上的Lastest目录里都建立了到All目录的链接文件。但是有少数软件需要加上主版本号,比如firefox3就是。安装gnome2,按手册里说的,可以直接用 pkg-add -r gnome2 进行安装。   三、硬件支持似乎更好。以前在FreeBSD上遇到过鼠标响就迟钝的问题,现在好像也不存顾,而且对USB鼠标也支持得比较好。有一些启动后,发现ps2口的键盘没接好,而且直接接上,居然可以用。这台计算机接了一块GeForce2的显卡,用比较旧的驱动,编译时提示驱动不支持FreeBSD8的版本,看源代码只支持版本号在于等于5.3小于6的版本,但是按网上的办法改驱动的C文件,可以编译通过,并且能正常使用。当然,这是安装compat5的效果。其实,在ports里面有nvidia-driver的包,可以直接装nvidia显卡驱动。对网卡的支持也比较好。一块Interl Pro100+的网卡,在Debian下识别不了,在FreeBSD下能正常使用,以前在FreeBSD6下也能正常识别。另一块D-Link的DL100030B的网卡也能识别。   四、用sysinstall安装软件包时,选择从网络安装时,会给出很多备选的镜像,记得以前好像没有这个,不知道记错没有。这其中包括ftp.cn.freebsd.org,从国内下载当然快多了。不过mirror.163.com也有FreeBSD 镜像,好像没集在其中。   五、xwindow启动比较慢,提示说计算机名有问题,不知道是不是这造成的。我在设置计算机名时设置了域名,有可能是在网上找不到该域名的问题。   六、安装配置时,选择了ssh登录,结果在启动时,这一环节感觉比较慢,以前没装过这个,也不知道是正常还是有其它原因。后来在/etc/rc.conf中把ssh登录去掉了,但启动过程中仍然有一个环节比较慢。   这篇文章就是在安装好了的FreeBSD8.2下打的。
  在一台比较旧的计算机上安装了Debian 6,其配置为CPU Pentium 4 1.7 + DDR 1G内存,安装之后安装了IBM SDK,用它启动netbeans,结果慢得惊人,启动时间在一分钟以上,而且界面出现以后CPU持续在100%的时间长达3分钟左右,加上扫描默认项目的时间超过5分钟,而默认项目就就是一个刚建好的Dynamic Web项目。而且又安装了SUN JDK,结果速度却快多了,在20多秒就启动了。   在整个运行过程中,内存是足够的,swap利用为零,而且测试了在第一次运行后,接着第二次运行的结果,这样文件会在系统缓存中,硬盘成为瓶颈的可能性不大。   以前在虚拟机中测试不是IBM JRE快于SUN JRE吗?如果要作出判断,那只能说IBM JRE对CPU依赖较高。如果作更细的估计,那就有两种可能。其一是IBM JRE对CPU缓存大小要求比较高,因为较高CPU中运行是IBM JRE快于SUN JRE,那就说明IBM JRE启动netbeans所需要的总运算量并不比SUN JRE多,而缓存不够往往会导致实际处理时间大为延长。其二是IBM对AMD处理器下表现更好,原来在vmware下,宿主计算机是AMD平台的,而这些测试,计算机是intel平台的,估计这种可能性不大。其三是IBM JRE对64位CPU支持比较好,在vmware测试时是64位计算,这次用的是32位的。   由于速度不够用,而后又在一台配置为AMD 5000+ CPU内存为2G的计算机上安装了64位版本的Debian,测试了Eclipse的启动速度,结果都是第一次启动之后再次启动的所需要的秒数。 IBM JRE SUN JRE eclipse 9 13 netbeans 12 17   由些可见,在较高CPU下,IBM JRE还是具有较明显的速度优势。但在计算机配置较低的计算机上,SUN JDK则更具优势。   两个JDK都是用的6的版本。
  个人并不喜欢用CentOS,也不了解,但有时候客户选择了它那就没办法。   对于已经在夏季推出一CentOS6,安装服务器版可以用minimal光盘,而桌面则必须用DVD光盘。可能是由于CentOS6发布不久,对其稳定性还有所怀疑,所以客户选择CentOS 5.6此版本。   下载了一张5.6版的光盘,在虚拟机上安装,对软件包选择了一些必须的,然后程序提示说要前4张光盘。试着减去了一些,还是提示要4张,于是把中文相关的去掉,则提示要前2张了。但估计除非不安装xwindow,否则至少要前2张,因为可以不安装的的程序已经去掉了。   具体该去掉的软件包如下: Games and Entertainment Graphics Office/Productivity Sound and Video Servers -> Printing Support Base System -> Dialup Networking Support   注意,在选择软件包时,不要把默认没有选择的选上,这样即使去掉,有可能还是会导致提示说要多张光盘,估计这是因为虽然你去掉了该软件包,但其依赖的软件并没有去掉。   还要注意的是,选择好了之后,选择"Customize Now" 进入下一步。   当然,选择这些软件包,其中不包括中文字体,这样安装好之后不能显示中文。那就需要用yum进行安装了。 yum install fonts-chinese   如果记不住软件包名,可以先查找一下。 yum search ttf 或 yum search chinese   后来查看第二张光盘的内容发现其中包含OpenOffice,所以估计在安装中选上它也不会导致需要更多光盘,但本人没试过,因为很少用这个,所以就不装了。   顺便说一句,感觉yum源中的软件远不及Debian下丰富,想装个webkit核心的浏览器,试了midori, epiphany