分类目录归档:Code.编程

域名转向的一层窗户纸

公司网站新版正在规划中,计划使用一些二级域名。

在htaccess文件中写rewrite规则,搞的我头大。明明正确的正则表达式却无法起到任何作用,从春节前弄到今天,直到找到这篇文章,才突然明了了真相:http://wenwen.soso.com/z/q160535863.htm

2010-02-14_211934

搞清楚这点,接下来也就是分分秒的事情了。

RewriteCond %{HTTP_HOST} [^w{3}].test.com [NC]
RewriteRule (.*) %{HTTP_HOST}$1 [C]
RewriteRule (.*).test.com http://www.test.com/path-to/$1 [L]

第一句是条件:(任何不是www的字符串).test.com ,因为www.test.com 是主域名的地址,就不要跳转了

第二句,把http://***.test.com变更到http://***.test.com/***.test.com

第三句,把http://***.test.com/***.test.com变成http://www.test.com/path-to/***

flash广告栏

BOSS给的任务,flash做一个广告栏。本以为简单,开始做的时候才发现不是那么容易。现在ActionScript脚本都跨越到3.0了,好久不动手,即使是AS2.0都忘的差不多了,更何况变化比较大的3.0了。只好临时抱佛脚,下载语法手册边干边学。周日放弃了半天休息,周一又熬了会儿夜,终于在凌晨两点多搞定。

要点:

1、AS从2到3的跨越,几乎是从头来过。面向对象化的语法,有些代码风格和扩展jquery比较类似。

2、图文混排的实现:开始想使用htmltext来实现,但发现定位很难,最终用了两个层,一层写文字,一层绘图。

3、画方框、画三角箭头

4、数列:数学无处不在,两个数列的表述,一个是0,1,0,1,0,1…,一个是0,0,1,1,2,2… 第一个很容易,第二个还思考了半天,想通了其实也很容易

5、flash读取外部xml和css。最后封装的成品,更改风格、文字链接、图片只需要在外部修改即可。

2010-01-19_015818

演示:http://blog.dodo100.cn/wp-content/uploads/2010/01/test/banner.html

gphone变身条码枪

g1_equals_2_scancer

gphone变身名片扫描仪之后,今天一个上午写了点简易代码又成功使得gphone成为了条码枪。

这阵子抽空在写一个快递单据管理的辅助b/s系统,已经实现了大多数功能,马上可以投入实际使用了。通过这个系统的开发,对于web套打有了比较清楚的实现方法,不再像当初做销售单据套打那样吃力了。同时实现了快递单套打模板的在线设计功能,鼠标简单拖拽即可快速定位,这样便一劳永逸的能够处理不同快递公司的单据了。

2009-12-04_153426 2009-12-04_153520

在录入快递单的实际过程中,发现所有快递单的单号都对应一个条形码,便有了点想法。买一个条码枪当然是最简易的方法,但是要花银子的。记得gphone上有个条码识别的软件,最早看到它的介绍,软件开发初衷似乎是为了购物时直接扫描条码然后通过手机上网搜索商品相关信息用的。在这个基础上做一些扩展调取条码扫描结果数据便应该能实现我的idea。

按图索骥,找到了这个软件,惊喜的发现是开源作品,site在这里http://code.google.com/p/zxing/。下载了源码包,试图二次开发。但是,动手开发前的第二次惊喜使得这个idea更快的成为了现实。就是:在最新版的软件里,有这样一个功能,自定义搜索网址,使用%s作为产品id占位。我的思路

Concept5

gphone上将软件设置自定义搜索网址为

http://192.168.0.3/virtual_barcode_scancer/updatecode.php?code=%s

而这段php就存贮在pc端的apapche文档目录里。扫描后立即启动自定义搜索,就把%s传给了apache,将之用数据库存储。接下来,另外一段php代码读取数据库,显示数据给任何需要使用的地方。

1

 2

 3

 4

 5

web端点击“获取单号”的按钮后,通过ajax方式读取字串,因为跨域执行,不得不使用json方式。好在数据简单就是一个字符串而已,也没什么复杂的了。

2009-12-04_171039 

实际上,如此操作未必比得上手工输入快捷,但是好在不会出错,权当一次学习技术的机会。

android开发入门

大致看了一遍《深入浅出Google Android》,感觉似乎不是很难。只要有经验的JAVA程序员,再加上一个good idea,做一个热辣的程序就不是什么难题了。可惜我没有深层次的JAVA基础,只是05-06年做IT行业的时候某个小项目需要写过不到300行的code,仅仅是浅尝辄止。

周六晚上没事,下载了个android的SDK,折腾到晚上12点多,写了个小程序,功能很简单,就是显示俺闺女截止到今天的岁数,精确到天。

1

按“显示答案”就会显示依依宝贝的年龄了。

2

增加了一个简单交互,也可输入数字来提交,错误的数字会变成红色。

3

JAVA这门语言很严谨,不像web脚本那样随意。包括变量声明、变量类型转换等等细节都要注意,否则就会报错。如果真的有时间还是得研究研究,根据日常需要做一些最适合自己的DIY手机程序。

excel vba写的库存记录工具

之前每月的库存记录是在如下图所示的表格中填写的。所有进出库记录都写在标注里,核对起来简直是噩梦,特别容易出错。

2008-11-04_091826

 

今天终于下定决心利用excel的vba来做个辅助工具。没想到开发很顺利,一个下午就搞定了。

原来的表格,命名为store(为方便演示,只留下少量数据)

 

2008-11-04_093241

 

这是用来记录出入库数据的表格,命名inout。数据最简化处理,一行将对应一个出库单元。只需核对这个表格里的基本数据即可。store里的标注使用vba程序自动添加。

 

2008-11-04_093756

 

这是自定义的菜单,用来开启vba界面

 

2008-11-04_102009

 

数据录入窗体。输入后enter光标跳转到下一个输入框。确认输入后光标跳回日期框,继续下一行数据录入。不离开数字键盘即可完成操作。

 

2008-11-04_102103 

 

完成后按刷新出入库数据菜单。数据自动生成。如果store表里没有对应的货物编号,inout表对应的单元格会染色标注。随后可手工添加。

 

2008-11-04_102135

 

自动插入的标注,格式规范。

 2008-11-04_102157

 

日常使用笔记本,没有数字键盘区域。从Taobao上拍了一个小的数字键盘,操作数据非常方便。

 

DSC03162 (Small)

终于升级了wordpress

虽然我的blog总在断断续续的更新,但始终无暇去升级wp程序。昨夜才暮然发现wp已经升级了N个版本了,我还在使用老掉牙的2.0.5版。程序老点倒是无所谓,但要命的是几天不记得维护,spam就多的吓人。终于决定来做个升级。

但这次升级却绕了一个太大的弯路。

先说我的理想操作步骤:

导出数据库为本地sql文件。利用有限的sql知识,优化一下数据备份,删除多余的东西,满足一下小小的洁癖需要。

删除原有数据库

上传新版wp程序,建立数据库

对比新旧数据库结构,对第一步的sql文件做适当的修改,导入数据。

想法是不错,可操作时却发现新旧2套wp程序似乎对数据结构做了很大的调整。没有耐心仔细分析下去。

只好试图恢复原有数据库,可在恢复数据库的时候,经历了一波三折。phpmyadmin导出时容易,可上载时却经历漫长的等待之后给出一个execute time out 的错误信息。无奈,只好把备份的sql文件分成了6段才导入成功,忙出一头热汗。

最后直接进入http://blog.dodo100.cn/wp-admin,提示数据库过时,需要更新。点击后不超过5秒,升级成功。只是可惜这种方式,肯定在数据库里遗留有垃圾信息数据。

柳暗花明,PPC架设Server有望

本来试图把PPC刷成Linux,结果竟卡在第一步上,无法备份原来的rom。这下原来在ppc上架设服务器的想法就只能暂时搁浅了。

没过几天,竟发现原来在ppc上也可以架设基于php的Server,项目名称叫做hph。只不过支持的php函数还不是非常全面,仅类似于4.0版本,数据库也仅支持Sqlite。不过对于我的应用需求来说,已经足够用了。

PocketHPH

设想开发这样的系统应用到日常各种工作中:

1、在同客户交流的过程中,掏出PPC,轻点触笔,就可立即调出相关产品的图片及资料。

2、与客户签单时,无需再搬出笔记本,而是直接录入资料到PPC中,最并封装成数据包传输到我们的客户关系管理系统中。

【3月18日补记】

方案一已经用另外一种方式basic4ppc实现了。basic4ppc是一种类似visual basic的开发IDE,在本程序中,我使用了sqlite作为数据存储源,相当的好用。

1j_pda_login 1j_pda_list 1j_pda_more

方案二需要再抽空写代码实现。

blueprint–简洁的css框架

最近需要改写公司网站的风格,拿下春节的样式,换上08的新装。这下苦了,微软的自动升级策略把部分用户的IE升级成了7.0版本,除了要考虑IE6.0和Firefox,这次还得考虑IE7的兼容性,对于现在并不是IT技术专职工作的我来说,想想就头大。记得以前看到过有个叫blueprint的css框架,就下载来套用一下看看是否可以减轻工作压力。

这个框架巧妙的把页面划分为24个column,每个column宽度为30px,中间的margin宽度为10px。这样,整体页面的宽度便为 30 * 24 + 10 * 23 = 950 px,刚好符合大多数显示器1024*768(宽屏为1024*800)最佳分辨率下页面的最佳宽度。这样,在定义分栏的时候,便可以用column span-n 这样的class快速定义宽度,当然前提条件是美工的设计尽量让分栏的宽度等于 30 * n + 10 * (n-1) = 40 * n – 10 这样的整数宽度。当然,我们也可以修改默认配置文件,让column的宽度不等于30px,修改方法也是相当的灵活,还有一些热心的开发者做出的快速工具替你完成配置文件的修改。

blueprint

这样,用了很短的时间,便做出了同时兼容IE6,IE7和firefox的css,顺利的完成任务。在写这篇文章时,发现blueprint又推出了0.7版本,就在我下载0.6版本几个小时后,超级郁闷的是下载新版文件替换后,我写好的网页风格竟然发生了错位,只好仍然使用0.6version,待下次公司网站改版再说吧。