2 29
2月29日,4年一次的日子
上海再见
昨天终于在体力的极限情况下,完成了在客户那边最后的工作,居然两次在出租车上睡着了,回来庆祝了下,就是说离别的时候了。
在沪期间不算很顺,两家银行的数据中心,两起突发的相对比较严重的问题,将本来就不是很充裕的时间拉成了碎片,但也让我学习到了更多的东西,不只是技术,交流,更多的是细节,态度和思维方式的变化。
下午1点的飞机,马上就回到4年前的起点,虹桥机场。由于太忙,临走了才发现,酒店房间的落地窗能将在建的上海环球金融中心顶部看得清清楚楚,仍然颇为遗憾的是,甚至没有机会再去外滩看看。
期待dzxr.com百万次访问
呵呵,换个话题,临走前顺便看看改版后的dzxr.com,按照我的预计,因为link地址的改变,搜索引擎很难做到无缝切换,所以访问量应该下降,所以当时除了设置跳转外,还主动去搜索引擎进行了登录。结果呢,从2月12到2月27日半个月时间,网站访问次数居然有10万,这基本是过去一年的访问量(不过过去也只统计首页访问),发现主要原因,近2/3的来源是因为在百度里面,从1月30日开始,我的个人所得税计算器在以“个人所得税”这个关键字查询的结果排名一直是第二,而在“个人所得税计算”和“个人所得税计算器”上却见不到踪影。这倒真是个不错的关键字,不过百度出来的结果一直是改版前的旧link(http://www.dzxr.com/esmile 设有到新link的自动跳转),于是2月28日起,我发现原来占70%的百度链接全部消失,原来百度终于发现我设置的跳转了,并且开始对我的所有新地址初始化排名(我倒啊。。),去看看Google,“个人所得税”关键字,我的新地址(http://dzxr.com/pit/ )的排名已经升到了第七,而“金庸群侠传修改器”,“身份证号码升位”已经也更新为新地址,也牢牢占据第一的位置,只是这两个关键字可差多了。不管如果,改版的目的终于达到了,到了2008年,dzxr.com不再是大部分访问量是由于大学本科写的修改器,虽然个税计数器器也是研一实习的时候第一次交个税的时候写的,不过对于Real World,技术只是最基本的东西,最关键的就是趋势和方向。
末了,发现Google虽好,但看来中文市场还是百度说了算。至于我嘛,还是只选好的,不要贵的……
2 11
由于历史遗留问题,自己的网站还有些几年前遗留下的小PHP程序,年久失修,但仍然是本站主要流量来源,一直想移植成Wordpress里面的页面,几次尝试,远没有想象中简单,即使使用exec-php等插件,想靠简单的复制粘贴来移植这些php和Javascript的程序基本不可行。最近成都的阴雨天把我活活逼成了个宅男,花了1天的功夫,将以前的几个在线程序改为Ajax,并移植到Wordpress成功!
这几个在线程序 个人所得税查询 ,身份证号码升位 和在线IP查询,在线IP查询这个前几年很火,不少人都写过,最近访问师兄wangjia的网站,发现他已经用iframe将其做成了一个widget,甚妙,不过查询结果是以msgbox形式弹出,不是很爽。第一步改造就从自己的在线IP查询开始,先花个几分钟看看掌握 Ajax,第 1 部分: Ajax 简介,主要目的是直接抄袭其介绍的全部代码,简单的改改就可以用了,然后把自己以前的php改改,URL给定参数返回想要的值,这个也很容易,没多久就能改造完,大体框架和流程是这样的:
1)改写PHP程序a.php,利用$HTTP_GET_VARS['var']获得由URL(a.php?var=123)传来的等参数值,直接用echo打印运算返回结果
2)写Javascript 的静态页面b.htm,在表单中设置onChange调用的方法,通过URL发送请求给PHP页面a.php,编写update以接收PHP反馈回的值,详见掌握 Ajax,第 1 部分: Ajax 简介
3)在Wordpress的页面,日志或者Widgets里面源代码编辑,用iframe调用含Javascript的静态页面:
<iframe src=“b.htm” scrolling=“no” frameborder=“0″ marginwidth=“0″ marginheight=“0″ width=“180″ height=“105″></iframe>
好了,大功告成,几个程序再没有烦人的弹出窗口或者显示的服务器交互,试用下吧:
以前访问量最大的金庸群侠传修改器因为大部分是文本,就直接移植了,以前的php里面含的一个随机背景midi不再使用,该页面单独的计数器也停止了,从2002年7月28日到2008年2月10日共计514788次。
末了,最重要的事情,是把使用了新链接地址的几个页面,在老地址设置几个自动转向,ok,大功告成,顺利全面进入wordpress大家庭
2 11
这里是一个旧身份证15位的在线升位程序,18位的身份证号码是在原15位身份证号码的第六位和第七位间 加入了“19”两位数字,目的是解决“千年虫”问题。然后再根据这样产生的17位数生成一个校验数加在最后,这里只介绍该校样数的产生算法:
//使用SPARKS语言,定义%为取余运算符//
procedure idNoProof()
integer i,num;
char proof;
integer idcode(1:17);
num=0
for i=17 to 1 by -1 do
num=num+( 2^i % 11 ) * (idcode(18-i));
repeat
num=num %11
case num
:0 : proof=’1′
:1 : proof=’0′
:2 : proof=’X’
:else : proof=(char)(12-num)
end idNoProof
能不能口算或者用简单笔算出来这个校样数呢?答案是肯定的,程序中多次利用了除以11的余数,而商是没有用的,所以针对人的算法是这样的(只有产生num的值部分):
num=0 ,j=1//从现在开始要记住num的值//
for i=1 to 17 do //从最后一位开始算,能简单不少//
j=(2*j) mod 11
//j 的值是2的i次方除以11的余数,当然运算时前面还有句“if 2*j>11 then”//
num=(j*idcode(18-i) mod 11 + num)mod 11
repeat
运算中只需要记着每次变化后的j和num的当前值就可以了,运算的次数理论上最坏的情况下会求除以11的余数51次,千万不要犯错:)
升位器如下
1 05
首先声明下,我没有和这个系统的开发相关任何工作有任何关联,从北京地税局的网站上来看,北京博士山科技有限公司才是其开发维护单位。
我只是其一个终端客户,差点被搞崩溃的一个终端客户。
从去年开始,每年的1月1日到3月31日,是年所得12万以上的纳税人申报时间,今年照旧……
前几天去网站看了看,好家伙,网站页面美观了不少,可惜我死活想不起去年的密码,只好选择遗忘密码申报了事,申报完成,却发现新密码登录进去后无法查询去年记录,觉得有点遗憾,就只好拉倒了。
今天很不幸的找到了去年的密码,原来是当时随机生成的,和今年一样,这个密码是不可以更改的,立即用身份证号+原密码登录试了下,居然能登录并查询去年记录但不能访问和修改今年记录。
这个设计真让我佩服了……身份证+密码成为Unique Key,所以密码不可修改,加上设置密码后会明码提示密码,所以密码非常可能是直接明码存取的。要命的是,所有的页面,全都是http而不是https的。。
还好本来俺们就没有指望过其安全性,不过这个使用同一身份证,根据不同密码来访问不同记录的设计实在是让我佩服到底,非常有中国特色,在需求发生变化的情况下,巧妙的设计以最少的代码量和最低的风险准时完成该系统。
我佩服得五体投地……
最新评论