念 的个人资料牛肉面的BLOG日志列表留言簿 工具 帮助

日志


2007/4/29

谁给平安保险做的在线投保功能?

也不知道谁给平安保险做的在线投保功能,昨天去激活一张旅程平安卡,结果上面显示的默认投保起始日期竟然是06-04-29。我一不留神啊,这20块钱的卡就被平安保险给黑走了,黑,真黑啊,打他们的投诉电话,小姐答应我说1个工作日内给我答复,我等,等了一天也没个结果,晚上再打电话过去又告诉我说什么时候能给我答复不一定。靠,以后再也不跟他们平安保险打交道,玩去!

2007/4/20

听说夏新要主攻3G手机

听说夏新要主攻3G手机,要做智能手机,别的不说,希望它不要再请那个李宇春做广告,要不然,嘿嘿,就算它做出再牛的手机,等着它的也是血本无归。

底层软件工程师

一位新来的员工坐在我旁边。一日谈话时,他说他不喜欢写C程序,喜欢JAVA,那我就问他那为什么来应聘底层软件,应该去应聘应用软件才对,他说是他当时递简历时就是递的应用软件开发,等拿到offer后,上面写的是"底层软件工程师",他当时以为"底层软件工程师"指的是处于公司最底层的、受剥削受压迫的那种程序员……于是,哈哈,呵呵,这个说法其实,其实也挺正确的……

 

几天后,在这个哥们的争取下,他被调去做JAVA了,比较开心。希望他不会成为"底层软件工程师",希望广大的程序员都不要成为"底层软件工程师"。

2007/4/19

日子过糊涂了,时间错乱

日子过的都过乱了。下班后看着看着代码,扫了一眼右下角的时间,结果发现已经X点过16分了,当时我的第一反应就是9:16。结果赶紧写了日志,奔到隔壁看去找老大,想一起去座车回家。事有凑巧,本来老大肯定会告诉我时间还没到,可就在这时,正赶上部门老大说要回家,老大和我就一起去蹭部门老大的车回家。

    等到了家才发现,闹钟上刚刚9点。咦,肯定是闹钟没电了,然后看了一眼家里电脑的时间,发现那里也是9点,咦!这是怎么回事?第三类接触?事情太怪了,于是我仔细想了想,终于恍然大悟,原来是我在公司看错了时间,本来应该到公司门口一看,没有厂车,也应该能反应过来看错时间了的,可偏偏又坐了部门老大的车回来,于是……

    晕了,晕了,事情竟能错到这种地步,而且一错再错,有趣有趣。

tracert程序出现错误no resources

tracert程序出现错误no resources,在网上查了一下,大概原因是TCP协议遭到了破坏,下了一个叫WinSockFix的程序进行修复,问题解决。

在Cygwin console输入、显示中文

首先需要在home目录($HOME)下新增或编辑两个档案: 
.inputrc 和 .bash_profile 
在.inputrc中要有下面三行 
set meta-flag on 
set convert-meta off 
set output-meta on 
在.bash_profile中要有下面三行 
export LESSCHARSET=latin1 
alias less='/bin/less -r' 
alias ls='/bin/ls -F --color=tty --show-control-chars' 
如果对指令跟文本编辑器都不熟,请开启cygwin console,依序执行下面七个指令: 
cd 
echo "set meta-flag on" >> .inputrc 
echo "set convert-meta off" >> .inputrc 
echo "set output-meta on" >> .inputrc 
echo "export LESSCHARSET=latin1" >> .bash_profile 
echo "alias less='/bin/less -r'" >> .bash_profile 
echo "alias ls='/bin/ls -F --color=tty --show-control-chars'" >> .bash_profile 
然后退出cygwin console,再重新开启,就可以输入、显示中文了。 

编写适合自己需要的printf()函数

转到这里时做了修改,添加了itoa函数.  by Garfield

对于嵌入式软件的开发人员而言,"printf调试(printf-debugging"这个术语描述了将调试字符串从嵌入式目标空闲的串口压出,并在运行于宿主工作站的终端模拟器上显示结果的常见方法。 
出于这个目的,许多程序员更喜欢使用有名的printf() C语言库函数,因为它在将文本输出和数据组合成单个函数调用上具有灵活性。但是,不在嵌入式系统中使用printf()无外乎两个常见的原因:不是因为printf()太慢了,就是因为它太大了。

事实上,很容易就会碰到这些局限性。如果你看一下标准C语言库的规范,原因就很明显了。Printf()必须处理大量的数据格式,包括字符串、字符、(各种长度的有符号和无符号)数字,以及浮点值。此外,格式字符串可以包括用于更改文本对齐、基数、间距、字段宽度和精度的调节器和指示器。很清楚的是,任何支持整个规范的代码都会是冗长和繁重的。

嵌入式系统库的提供商意识到了这个问题,于是提供了只使用整数的printf()实现。这就通过去掉不必要的浮点支持而稍稍改善了这种状况。但是即使如此,这些实现对于许多缺乏内存的嵌入式系统来说仍然太大了。

在你每天的编程工作中,你到底需要多少printf()的规范?可能只需要"%s""%d",以及"%x"?所以还有另一个选择:编写能够满足需要的你自己的最小printf()函数。

这会带来相当大的好处。例如,在最近一个项目里,我替换掉了一个由制造商所提供的printf()库,它需要超过20 KB的内存(这超过了可用内存的一半),而换上了一个小巧的只支持必要特性的自定义版本,它只需要不到500字节的内存空间。

小巧的printf()
  
下面是替换一个非常基本的printf()的例子:

/*
反转字符数组s*/
void reverse(char *s)
{
    int c, i, j;
    
    for (i = 0, j = strlen(s) - 1; i < j; i++, j--) {
        c = s[i];
        s[i] = s[j];
        s[j] = c;
    }
}
/*
将整数n转换为字符数组存入s*/
void itoa(long n, char *s)
{
    int i, sign;
    /*
最小负数单独处理*/
    if (n == 0x80000000) {
        strcpy(s, "-2147483648");
        return;
    }
    if ((sign = n) < 0) {
        n = -n;
    }
    i = 0;
    do {
        s[i++] = n % 10 + '0';
    }while ((n /= 10) > 0);
    if (sign < 0) {
        s[i++] = '-';
    }
    s[i] = '\0';
    reverse(s);
}
/*
格式化输出,用法同printf,只支持%s%u两种格式转换*/
void intprintf(const char *fmt, ...)
{
    const char *s;
    int d;
    char buf[16];
    va_list ap;
    va_start(ap, fmt);
    while (*fmt) {
        if (*fmt != '%') {
            putchar(*fmt++);
            continue;
        }
        switch (*++fmt) {
            case 's':
                s = va_arg(ap, char *);
                for ( ; *s; s++) {
                    putchar(*s);
                }
                break;
            case 'd':
                d = va_arg(ap, int);
                itoa(d, buf);
                for (s = buf; *s; s++) {
                    putchar(*s);
                }
                break;             
            default:  
                putchar(*fmt);
                break;
        }
        fmt++;
    }
    va_end(ap);



下面是一些值得注意的事情:

为了节省空间,这个简单的printf()只支持"%s""%d"格式的分类符,而不需要任何指示器或者其他调节器。扩展这个函数以支持其他分类符是相对较简单的。 
C
语言的标准要求printf()应该返回输出字符串的数量。这个被返回的值通常被忽略掉了,所以这个轻型的printf()就不会劳心去计算它了,而是返回一个伪值。 
一般来说,putchar()这个函数会将字符发送到串口,更通行的方法是通过由中断驱动的串口输出缓冲区以避免延迟。 
首标文件<stdarg.h>是一个标准的库首标文件,它为访问传递给printf()的变量自变量列表提供小巧的宏,通常是通过系统堆栈。 
更进一步优化
  
要注意,控制权在你手里,你可以在感觉需要的情况下做出任何优化,并轻易地添加你所需要的特性。

下面是你可以考虑的几种优化方法:

添加一个#define,它会控制%d是否将整数显示为十进制或者十六进制数。如果你使用简单的位移(bit-shift)而不是长的划分来实现到十六进制数(等同于使用"%x"分类符)的转换,那么这一转换在大多数处理器上会快得多。然后你就能够在编译的时候为"%x"取得输出格式:快速的十六进制数或者缓慢的十进制。 
将整数到文本冗长的转换转移到工作站上。例如,当碰到"%x"分类符的时候,嵌入式处理器能够轻易地发送一个未使用的ASCII码,比如说0x01,并跟有原始的整数字节。不幸的是,这种方法需要一个在你工作站上运行的自定义终端程序,以解码它所获得的字节流,并在显示字符串之前实现必要的整数到文本的转换。  

又是一年七月七

从我的blogcn上转来的.

这篇日志是06年7月31号写的,只是今天才发上来。


本来是阳历的7月7想写日志的,不过老是没机会,左赶右错就等到今天了,也可能是天意吧,今天是阴历的七月七,七夕节,呵呵

又是一年七月七
遥想前事成追忆
只道年少光阴慢
回首暮然发叹息
离家千里无亲故
只身一人话难提
甘愿受难多磨厉
有成之日会有期


本想写些东西,可现在,觉的上面这首"诗"把我要说的意思都表达了,啥也别说啦,眼泪哗哗的……

接收OutLook中不安全附件

这是转自我CSDN的文章,在这里安家,东西当然要搬来了:

今天收到老大发来的书,CHM格式的,结果out look说这文件不安全,不让接收,,安不安全的还能全让你说了算?那我的书怎么办?不过呢,结果书还是被我收到手了,方法如下:
HKEY_CURRENT_ USER\Software\Microsoft\Office 11.0\Outlook\Security
,选择"编辑"->"新建",继续选择"String value"(字符串值)并将其命名为"Level1Remove" 值设为不需要接受安全检查的附件类型扩展名,多个扩展名用分号隔开,例如".exe;.chm"等,单击"确认"按钮即可。退出注册表编辑器,重新启动计算机后即可。 

<<Routing TCP.IP v1, 2e.chm>>到手.

这回搞定发日志了

终于又能发日志了,这下终于弄清是怎么回事导致之前无法发表日志了。原来是因为那天安了个天网,由于我一直用GB,所以就把IE给封掉了,而word好发表日志好像要用到IE,结果弄的WORD也发不了日志了。其实当时也想到了天网的问题,看了看列表里没有封WORD的项,也就没管,唉,没想到载到这个天网上了。

2007/4/17

让人生气的live space

之前是live space不能在IE里发布日志,我忍,安一下WORD2007来写,可刚刚发了一篇,就又不能发了。这个G8烂东西,气死个人。
可也没办法,找不到好用的地方。本以为MS的东西,应该错不了的,可还是他奶奶的让人生气。
2007/3/25

遭遇卖假本的骗子

    早就听说过把旧本翻新,改windows显示的信息,改成很牛B的配置,然后拿出来当好本卖骗钱的事,今天可让我碰上了。我本以为我肯定能看出本是被改过的,不过这些骗子的伎俩还真是挺高的,我大概看了1分多钟(他们故意把电池用的没电,好让买主没不能细看),竟然没有看出破绽。“右键我的电脑”->“属性”里的信息改了,连dxdiag里的信息都改了,“右键我的电脑”->“管理”里的硬盘信息也改了。哇靠,要不是我精明,又有同事已经上过这种当了,没准我还真会中了骗子的道。
    本本被翻的很新,不过有点新的过分了,腕托那里还故意贴了个“超女”的不干胶,不干胶已经有点发白了,像是被磨了很久的像子,但是键盘上竟然干净的连油光都没有,这怎么可能!骗子还是智商不够。
    时间不够,要不然的话进BIOS去看BIOS的信息,估计骗子能改windows里面的信息,BIOS里的应该改不掉的,可以在BIOS里看机子的配置、或是看一下BIOS版本的日期。
    那个骗子的做法也做的有点过假。他还假装不会用电脑,连关机都不知道在哪,可他竟然知道右键“我的电脑”选属性让我看机子的配置。
    只要我们这些善良的人们擦亮眼睛,骗子的鬼把戏是没用的。
2007/3/20

IE7字体模糊

刚换了个IE7,发现网页的字变的很模糊,不爽。上网查了一下,说是IE7默认使用ClearType字体,在液晶上效果比较好,现在还没有液晶用,所以还是把字体改正常来吧:
“Internet选项->高级->总是将ClearType用于HTML”前面的勾去掉就行了。
晚上回家在本本上试了试,这个选项在液晶上看来是有变化的,如果不打开,字体会变的很难看(用的字体是微软雅黑,估计也和这个有关系),所以如果用液晶的那,这个选项还是打开的好。

在公司的机子上怎么也发表不了live spaces日志了

刚刚装好的XP系统,还是他妈的正版的,又新安了个IE7,结果就他奶奶的不能发表live spaces日志了,shit,惹不起我还躲不起吗我?
方案一:不在公司的机子上写了。
方案二:安个FireFox。
这两个法都挺不方便,还是想把它能改好,不过上网也没查到该怎么办,唉,先躲吧还是,躲到FireFox积分的里去呆两天。
2007/3/18

配置SlickEdit

新机器来了,自然少不了重新装系统,唉,麻烦。
本来用的SlickEdit算是个试验,刚开始用,也不会配,只是把别人的配置文件拿来随便试了试,这一试倒让我喜欢上这个好东东了,用起来是真的挺好用,功能是嗷嗷的强,可就是有点不人性化,功能都要让人自己动手配。之前一直在凑合,这下正好,来新机器,装新系统,又赶上周末,就好好学学怎么配置VS。
我用的是SlickEdit 11.02,配之前,先上网查查资料。之前看到隔壁猪哥写了不少关于SlickEdit的配置文章,不过没仔细看,这下是一定要看了,http://superding.spaces.live.com/  猪哥写的东西还真不少,按他写的来做,嗯,好像不难。
第一次配,为了简单方便,就直接把猪哥做好的一个Hot Fix下下来,load了一把,嗯,标签栏双击关闭就已经有了;有多个候选时,在symbol窗口双击也不会改变编辑窗口的内容了;选择tag时,增加了Preview框预览;不错,用起来比较爽。
还有一个highlight项没有,好像是Hot Fix里没有包括这个e文件,从猪哥的blog上下下来后load上去,再在右键菜单里做个自定义项,OK。
还有些功能就无不一下子弄好了,等用到的时候再弄,等周一去了在新机子上爽新VS喽!

新工作PC到手

吼吼,
AMD Athlon64 x2 3800+
Qimonda DDR2-667 512MB *2
的机器用起来是什么样子?想是想不出来了,因为以前没用过这么牛B的配置嘛,这下好了,公司新来的机器,DELL OptiPlex 740,用起来这叫一个爽歪歪。跑VS的时候再也不会觉的顿了,跑起虚拟机来,估计跑上8、9台也能行(之前CY2.8 512M内存的机器上都能跑6台)。
唯一美中不足的是还差个液晶,要是再配台17"的液晶,那写起代码来怎一个爽字了得。
 
2007/3/12

XP下命令行改IP地址

老婆的本,公司家里两边用,IP地址就要改来改去,麻烦,可是她又能怎么样呢?唯一能干的,就是向我诉苦呗!
老婆有求于我,当然没有问题,写个批处理,OK!
netsh interface ip set address "work" static 192.168.0.23 255.255.255.0 192.168.0.1 1
netsh interface ip set dns "work" static 192.168.0.1 primary
写两个,一个换家里的IP,一个换公司的IP。保存成了bat,想换IP的时候鼠标一点,搞定。
 
2007/3/11

在我QD上看过的书

刚才突然意识到,原来我在QD上已经读了好多本书了,最早好像是看的《狼图腾》,晚上能看到1、2点,第二天早上还能起来去图书馆占坐,等看完了已后,看到实体书后才发现,原来那本要那么厚!接下来看的是《金鳞》,也挺厚,再接下来,《超新星纪元》、《球状闪电》、《三体》、《鬼吹灯》、《绝代双娇》、《与美女同事电梯被困一夜》、中间穿插的短篇就不说了。想来,好久没有看过这么多书了,呵呵。
接下来要看《藏獒》喽,只看了一段就被吸引了,好看!
2007/3/4

千呼万唤始出来

说要开BLOG,说了可有一阵子了。为什么拖到现在呢?一个字,懒。
今天可算是赶上正月十五这个好日子开了,庆祝一个先。
 
自从我在blogcn的日志关了以后,老想找个地方重新开,这下行了,再有话想说想写的话,就有地方了。
那好了,今天就是先开个头,报个到,日子还长着嘛,慢慢来。
 
                                                           by Garfield
 
2006/4/19

日子过糊涂了,时间错乱

日子过的都过乱了。下班后看着看着代码,扫了一眼右下角的时间,结果发现已经X点过16分了,当时我的第一反应就是9:16。结果赶紧写了日志,奔到隔壁看去找老大,想一起去座车回家。事有凑巧,本来老大肯定会告诉我时间还没到,可就在这时,正赶上部门老大说要回家,老大和我就一起去蹭部门老大的车回家。

等到了家才发现,闹钟上刚刚9点。咦,肯定是闹钟没电了,然后看了一眼家里电脑的时间,发现那里也是9点,咦!这是怎么回事?第三类接触?事情太怪了,于是我仔细想了想,终于恍然大悟,原来是我在公司看错了时间,本来应该到公司门口一看,没有厂车,也应该能反应过来看错时间了的,可偏偏又坐了部门老大的车回来,于是……

晕了,晕了,事情竟能错到这种地步,而且一错再错,有趣有趣。