firebird2.1中decimal字段的四舍五入

上周用firebird2.1做了一个劳资数据库,用来存储单位劳资信息并计算个人所得税。

深知税务人员秉公执法,锱铢不舍,所以不敢马虎,计算完毕后与税务机关的excel模板生产的数据进行了逐一的比较,发现存在2%的人员中存在一分钱的误差,估计是四舍五入的问题,用速算法算了算,发现问题出在小数点后第三位,比如如果是10.155,excel计算的结果是10.16,而把这个数值作为浮点数导入decimal字段时候,他是直接截取小数点后两位的,而10.156则取的是10.16,也就是说五舍六入了。

于是修改程序,那就是在程序中使用floattostr函数将浮点数转化为字符后插入,可以解决这个问题,但又出来另一个问题,那就是如果10.1445在excel里面是取10.14的,但在程序导入到数据库中则是10.15。后来再次修改,使用formatfloat函数规范数值,将所得税值取小数点后两位导入,这样就可以解决了。

再次升级

上周六为乐乐的两个哥哥各装了一台机器,学习用的,所以cpu用的是最为低端的闪龙,但考虑到今后的升级,主板选用的是微星的780V。机器安装的很顺利,速度也很快,算是比较满意,最后拷机的时候,突然想到用自己最近在玩的使命召唤2试一下。

我原先在我的机器上玩使命召唤2的时候,对690g有些失望,虽然特效可以部分打开,但效果并不好,只能算是将就着玩就算是给乐乐当战争教育用了。但当我在780v的机器上安装完毕进入第一个场景时,我有些震撼了。

这种震撼久违了。记得那还是我玩惯了s3的trio64+后在科技市场见到一款用trident9750玩的射击游戏的时候的感觉。尽管后来抨击9750的文章很多,那是因为有珠玉在侧,但当时看到那种亮丽和流畅足以促使我升级显卡。

同样的震撼发生在时隔仅一年的产品之间,难怪有些评测说780G比690G提高了2-3倍,我原先只认为是夸大其词,但那天看到的效果让我相信了,游戏默认的效果很流畅,而这些配置是我在690g上曾经设置过但只能看幻灯的。

所以我要升级,倒不是现在的不能满足我的日常要求,但那点震撼促使我一定要升级。

今天买了翔升的690G主板,看重的是他有3个pci插槽,这样我就可以继续使用电视卡而放弃那个鸡肋般的集成声卡,而使用我的坦克声卡火线版,同时更换了dvd刻录机,在sony和先锋之间犹豫了半天,后来考虑到单位的sony不错,而且价格要便宜(还赠带卡片的数据线),便买了sony的。

安装一切顺利,除了为了pci的占用调整了一下声卡和电视卡的位置外,连系统都没有重新安装就正常应用了。

打开音乐,哈哈,集成声卡还是烂啊,而且这个声卡支持音响和耳机分别使用插孔,这样用耳机听效果更好。

升级完毕,感到一种满足,也许这种满足也就足够了。

DEDE和帝国的比较选择

新的机器装好之后,想建立一个算是家庭的网站,这样可以便于管理日常的文件、软件、图片、flash等,看到帝国的界面不错,再说也已经懒得再自己修改源码,于是便安装了帝国CMS。

帝国的界面和细节无疑是要好于DEDE的,但用了2天后我还是决定恢复使用DEDE了,主要原因一是习惯还有就是DEDE的设置要简单直观,有些所做即所得的味道,而帝国要复杂的多,修改一个主页的模板也要绕几个圈子,后台管理看似强大,但想实现自己的目的要修改几个相关的配置选项。

可以这么说,帝国适合于给别人或者是最终用户推荐使用,界面美观,功能强大,细节也做的很好,但管理起来两个CMS,那滋味真是谁管谁知道。

DEDE4.0之后批评的人很多,但用了5.0之后,也曾经想回去使用更为自由的3.1,但已经不能再适应了,毕竟DEDE是进步了,下一步就是一些面子问题了。

重新选择动态域名解析并配置lighttpd

机器配置好了,但域名解析是个问题,希网的域名解析和当年相比,要差了不少,需要更新多次才能解析成功,而开机后有时候几个小时之后才能使用域名登陆服务器,于是想换一个,先想到的是最近正火的花生壳,有freebsd版本的客户端,但只是6.X版本的,在7.0版本上死活装不上,于是想到了科迈,虽然域名只有两个可以选择,但是客户端有freebsd版本的,而且只有一个文件,而且很小,所以就下载试一下。不比不知道,一比较,希网的真要大的改进了,科迈的域名解析是一次成功,设置也简单,把命令行加到rc.local文件中,随机启动,马上就可以通过域名解析了。

解决了域名解析,还要解决一下端口问题,突然想到,为什么不再安装一个lighttpd,这样用他来监听80端口,如果分配的地址恰好没有被封锁,不就可以在单位维护了吗?

通过ports安装好lighttpd,但配置起来却遇到了麻烦,总是不能启动,只好一个个解决。

首先是按照lighttpd.conf文件中的要求在/var/log目录下创建一下log文件,并授权www用户有权写入。

再就是默认的lighttpd.conf文件中关于fastcgi设置有误,需要修改socket和bin-path

fastcgi.server             = ( “.php” =>
( “localhost” =>
(
#                                   “socket” => “/var/run/lighttpd/php-fastcgi.socket”,
#                                   “bin-path” => “/usr/local/bin/php-cgi-cgi”
“socket” => “/tmp/php-fastcgi.socket”,
“bin-path” => “/usr/local/bin/php-cgi”

                                 )
)
)

修改完毕,在命令行下通过/usr/local/etc/rc.d/lighttpd onestart就可以启动lighttpd了。

lighttpd的端口设置很有意思,默认是80,但你修改server.port                = 800后发现他依然还可以监听80端口,原先在文件的最后有$SERVER[“socket”] == “0.0.0.0:80” { }这一行,所以依然可以监听80端口,但问题是我从外网还是只能通过80端口访问,暂且如此,以后再研究解决。

谈谈大水牛机箱

大水牛的小型机箱在网上是伴随着威盛的芯板而广为人知的,最初我到济南科技市场问询,当时知道的很少,更不用说是有现货了。但在全国一般有芯板的报道就有大水牛小型机箱的影子,也算是上镜率极高。

近期随着atom的上市,济南的大水牛机箱也慢慢多起来,我去拿货的时候,看到这个机箱不象一般机箱那样是单独的包装,而是很多机箱装在一个大的包装箱内,因为据老板说,一般很少有单独要机箱的,一般都是搭配着威盛或者atom的主板一起买,所以包装能省则省。

说实话,这款机箱应该是用了心的,通过调整硬盘支架的宽度可以安装不同尺寸的硬盘,应付itx类的小主板空间也很富裕,质量也不错,据老板说最高曾经用过闪龙,但还是有几个缺陷或者需要改进的地方。

1、电源噪音有些大。既然功率小,可以设计的更静音一些。

2、电源接口缺少软驱接口。现在软驱是很少见了,但用cf卡做电子盘的时候还是要用到那个电源接口的。

3、机箱还可以更小一些。为了满足某些用户的需要,机箱上预留了笔记本光驱位。但那个只能算是个摆设,因为那个光驱位对应的正是大部分主板的电源接口位置,在一般的电源接口形状,是无法安装光驱的,所以还不如取消光驱位,这样机箱还可以更小或者更薄一些。

4、这个机箱对PCI而言是没有扩展性可言的,所以如果要做网关使用,还是购买双网卡的主板为好,即便是带两个pci插槽的芯板2500+也是没有用武之地的。

“箱子”重于搞定

从年初开始我就期盼着龙芯盒子的市场化,但很失望,先是一推再推,后来就是双网卡变单网卡,看来是指望不上了,于是转向威盛的芯板,但不太满意的就是依然是单网卡,而如果自己加网卡,有两个问题,一是占用一个宝贵的pci插槽,再者机箱不好找。

奥运前在淘宝网见到了一款磐仪的工控主板,用的是威盛的c7-d,1.5g,让我动心的主要还是他的双网卡,再就是看到做工的确不粗,大散热片,时髦的固态供电,于是下单买了一块,360元。又到科技市场购买了一款市面上比较火的大水牛小型机箱,机箱不大,简直就是专门为威盛芯板准备的,考虑到为了省电和携带方便,于是又咬牙买了一块盒装的西数120G笔记本硬盘,加上一条便宜的1G667内存,夹着机箱就回家了。

机箱安装很简单,硬盘可以通过调整机箱里面的硬盘支架来安装笔记本硬盘或者台式机硬盘,接上电源,好家伙,噪音不小,想想也是,工控主板是不在乎噪音的,但放在家里的确有些吵。

装好机器后挂上自己的hp刻录机安装系统,但是很不顺,无论安装freebsd7.0还是ubuntu8.0server总是进了安装界面无法继续,但安装早期刻录的freebsd6.1倒是一切正常。

这样过了几天,借了一个时期近一些的光驱安装,这下倒是一切正常了,估计是自己刻录的光盘兼容性的问题,可惜了我的hp刻录机啊。

安装freebsd7.0,安装、编译起来速度感觉还是赶不上原先的athon1700+。freebsd7.0安装起来和原先版本相比要简单很多,许多提示已经取消,所以不得不在安装完毕之后再手动设置。设置好网络之后,没有使用光驱安装ports等,直接用网络安装,速度也不慢,看来网通3M网络的确不错。

由于是使用的adsl,按照网上帖子,设置好ppp拨号配置,使用pf作为防火墙路由,重启机器,却发现网内windows机器可以解析域名,但却出不去,查了半天才知道原来需要在rc.conf文件中添加gateway_enable=”YES”,这个原先是在设置的时候系统自己添加的,但这次还是要自己做。调整好后可以上网了,速度很好,没有什么迟延。

然后开始安装apache等,这个一切倒也顺利,在试过几个动态域名网站之后,最后还是用的是3322的。安装客户端的时候,按照网上的经验,先用ports安装好ez-ipupdate,然后再用3322的覆盖掉新装的文件,固然省去不少麻烦。

安装完毕之后给了我一个惊喜,在不修改apache端口的情况下居然可以直接访问了?难道网通的大爷们开恩了?但重启机器后又不行了,需要修改端口,看来这个是不同的ip地址段的管理不同,白高兴一场。

装完软件后,安装原先的预谋,拔掉了cpu风扇的电源,但机箱电源噪音还是不小的,机器运转半小时后,系统开始报警,然后自动关机,试试温度,非常高,显然,功耗控制是一码事,散热是另一码事,在缺少整体散热设施的情况下,威盛的芯板还是离不开主动散热的,看来宣传毕竟是宣传。

3322的解析最近感觉没有几年前好了,昨晚设置好机器回来访问的时候,解析不正常,今天早晨发现好了,估计是解析服务的问题。建立mysql数据库,是有load data导入了13万条记录,速度很快,进行了分表优化进行跨表查询,这时候就看出cpu的性能不太足了,cpu长时间占用100%,优化查询正常。

现在我自己的服务器建好了,虽然没有龙芯盒子那么便携,但这个箱子还是不错的,找个提包装起来应该也不麻烦。

错怪了pgExpress

前段时间在TurboDelphi下安装了pgExpress连接Postgresql数据库,使用起来感觉比较方便,也很稳定,唯一不满意的就是使用过程中,发现配置数据库连接属性的时候,只需要输入用户名就可以,这样连接岂不是很不安全?或者因为开源就偷工减料了?

周末准备开始用自己的新DIY的机器运行Postgresql,所以今天又找来相关资料粗略看看,便将pgExpress压缩包解压开来看看里面的文档,这才发现是错怪了pgExpress。

上次安装的时候是按照默认配置复制到原先的配置文件中的,那里面的设置是最为简化的,仅为:

[PGEConnection]
Database=localhost/mydb
DriverName=PostgreSQL
User_Name=john

所以自然只有用户名没有密码设置了,实际上在doc文档中建议用:

[PGEConnection]
BlobSize=32
HostName=host
Database=database_name
DriverName=PostgreSQL
Password=temp123
User_Name=steve
这样一来就解决了安全问题,真是错怪了好人,以后学习还是更为深入一些为好。

MSS使用手记五:初步使用postgresql

安装完毕PostgreSQL后,决定使用Mysql的数据库数据来试验一下。

首先新建了一个/var/db/pg目录,赋予postgres其权限,然后进入Postgressql命令所在目录首先初始化数据库

./initdb -D /var/db/pg

初始化之后再执行./postmaster -D /var/db/pg 启动这个新建的服务器,并新建了一个数据库。

由于还不习惯使用命令行建表,所以下载了EMS的postgresql的管理软件,但在winxp的机器上总是连接不上,于是进入/var/db/pg目录,先是修改postgresql.conf中将tcpip_socket 设为 true。然后修改pg_hba.conf,添加host    all         all         192.168.1.0/24              trust虽然不是很安全,但至少本网段内的机器可以远程连接管理了。

重新启动数据库后,ems连接上了数据库,并依照mysql的表结构新建了一个表。原先Mysql数据库里面有接近4万条记录,属于大而全的数据汇集,使用Postgresql查询,好家伙,和mysql相比速度不是一般的慢。

于是进行表的优化,新建了几个表,把冗余的数据通过insert into…..select distinct的方式导入到新的表中建立关联,并删除了原先的字段,这样查询起来速度快了不少,但还是要比mysql慢。

慢不怕,下一步逐渐测试一下postgresql的功能吧。

MSS使用手记四:安装postgresql

很久没有碰我的MSS了,最近龙芯盒子上市,但6003牺牲掉了一个网络接口,在预制不能自己diy的情况下,还是先用自己的mss练练手吧。

趁着周末,准备再调试一下我的mss,想安装一下PostgreSQL。本来我用龙芯版的linux的时候第一个安装的就是8.1版本的,但现在再安装反而提示的只能安装7.4版本。于是换了一个apt源,台湾的,速度很快,而且里面的版本是最新的8.3版本,但安装的时候总是提示需要安装最新的核心,但安装过程中却总以失败而告终,结果白白浪费了一天时间。

后来在mss的论坛上发现了原因:由于mss的固件核心版本较低,在这个固件版本下,是无法安装更新的核心的。

这下死心了,先安装7.4版本学习吧。

把apt源改为anheng的,很顺利的安装上了PostgreSQL7.4版本,并很顺利地建立了一个数据库。但重新启动之后,发现PostgreSQL并不能自动启动,手动安装吧,发现真是麻烦,和8.3相比手动启动,先su postgres 然后进入/usr/lib/postgresql/7.4/bin目录后使用./postmaster -D /var/lib/postgresql/7.4/main/ &启动数据库。

看来mss还是用来学习的,新潮的还是等以后再说吧。

重新安装TrixBox2.6

由于昨天没法设置TrixBox2.4中的IVR,所以昨天晚上又下载了一个最新版的2.6版本的今天一早就进行了安装。

安装还算顺利,由于Centos版本不一样,这次IP地址设置出了点问题,没有在安装的时候让设置IP地址,结果进入系统后无法获取地址。到网上查了一下,一般都是说修改/etc/sysconfig/network-scripts/ifcfg-eth0文件,在里面添加IPADDR=192.168.1.21 NETMASK=255.255.255.0,但重新启动后不起作用,又回去了,直接用ipconfig修改,当时起作用,重新启动,依然如故。后来才发现原来 ifcfg-eth0文件中有两行DHCP的设置,所以一开机就自动获取IP地址,把这两行屏蔽掉之后,问题解决。

新版的TrixBox看来对我的X100P卡支持的比较好,没有进行任何配置就可以落地使用了,物有所值,而且这也是我买的淘宝商品中唯一升值的产品,网上现在已经288了,但遗憾的是,我是那倒霉的两个不能显示来电的地区,没有就没有吧。

这次FreePBX设计的要好得多,速度要快一些,而且默认安装了所需的模块,包括了IVR,但设置并不人性化,看来还要花费一些时间学习配置。

重新启动死掉的情况依旧,作为一个BOx产品,这样的错误实在不应该。