不指定 类别: 电脑 » 操作系统 | felix021 @ 2010-3-29 14:53 | 评论(4) | 阅读(526)
用VirtualBox在Windows上搭建一个Ubuntu工作站

目标
1. 没有多余窗口
2. Ubuntu少占资源
3. Ubuntu可以上外网
4. 可以ssh连上去搞开发

实现
1. 在Vbox上安装一个Ubuntu
2. 整两个网卡,一个host-only,一个NAT。
3. 安装好ssh-server
4. 如果有gdm(desktop/alternative),干掉 sudo update-rc.d -f gdm remove; cd /etc/X11/,在default-display-manager的第一行(gdm)前加个#注释掉
5. 编译这个东西,可执行程序放到program files\sun\virtualbox\下面,比如叫做startvm
#include <iostream>
#include <windows.h>
using namespace std;

int main(int argc, char * argv[])
{
    string param = string(" -startvm ") + argv[1];
    ShellExecute(NULL, "open",
            "vboxheadless", param.c_str(),
            "c:", SW_HIDE); //使用SW_HIDE就不会看到vboxheadless的命令行窗口了
    return 0;
}
6. 运行 startvm "虚拟机名"
7. 打开SecureCRT连上去干活吧
8. 可以使用VBoxManage controlvm "虚拟机名" start|poweroff|pause|resume|savestate...等来控制虚拟机的运行状态

其他
1. 如果需要开机自启动,稍微改改这个程序或者搞个bat扔到startup里面去,或者干脆注册一个服务。
人人分享 | 电脑 » 操作系统 | 引用(0) |
不指定 类别: 电脑 » 程序设计 | felix021 @ 2010-3-27 15:47 | 评论(3) | 阅读(405)
注:以下测试都是在Ubuntu 9.10 + Gcc 4.4下测试。

1.c
int main(){}
$ gcc -S 1.c
        .file   "1.c"
        .text
.globl main
        .type   main, @function
main:
        pushl   %ebp
        movl    %esp, %ebp
        popl    %ebp
        ret
        .size   main, .-main
        .ident  "GCC: (Ubuntu 4.4.1-4ubuntu9) 4.4.1"
        .section        .note.GNU-stack,"",@progbits


2.c
int main(){ return 0; }
$ gcc -S 2.c
        .file   "2.c"
        .text
.globl main
        .type   main, @function
main:
        pushl   %ebp
        movl    %esp, %ebp
        movl    $0, %eax
        popl    %ebp
        ret
        .size   main, .-main
        .ident  "GCC: (Ubuntu 4.4.1-4ubuntu9) 4.4.1"
        .section        .note.GNU-stack,"",@progbits

说明如果没有return语句,那么返回值应该是不确定的。

3.c
int main() {__asm__("movl    $0, %eax"); }

增加一个程序test.c
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int s = system("./1.exe");
    printf("return: %x\n", s);  //16进制输出
    return 0;
}


分别运行1.c 2.c 3.c编译后的可执行程序,可以发现,1.exe的返回值是不确定的,但末2位都是0; 2.exe的返回值总是0; 3.exe的返回值总是0 。如果修改2.c的return 0为return 1或2,又或者修改3.c里面的 $0 为 $1 或者 $2 ,可以发现返回值就变成了 100 和 200。这说明在x86下,主函数结束后会将返回值存放在EAX这个寄存器中。
人人分享 | 电脑 » 程序设计 | 引用(0) |
不指定 类别: 电脑 » 程序设计 | felix021 @ 2010-3-26 00:53 | 评论(1) | 阅读(320)
php用fsockopen打开的fp是行缓冲的, 想要数据立即发送到服务器, 就在每次fwrite的数据后面加一个\n。

php的fwrite是atomic的。

java的wait()和notify()是任何对象(基本数据类型不行)都可以用的, 因为每个对象都有一个锁。在针对对象x的时候, 必须处于synchronized(x){}代码段内使用,否则会抛出一个 IllegalMonitorStateException: Thrown to indicate that a thread has attempted to wait on an object's monitor or to notify other threads waiting on an object's monitor without owning the specified monitor.

java的finalize不是析构函数, 只有gc运行起来的时候才可能会调用到它, 而且还不能继承。不能完全依赖它来作一些对象结束时本该作的事情。比较靠谱但是又比较丑陋的是用try-catch-finally来完成。

在linux下如果先chroot再getpwnam失败, 很可能是因为chroot以后就找不到/etc/passwd了。TODO chroot以后无法调用可执行程序的问题还需要再了解一下原因。

WIFEXITED/WIFSIGNALED等宏的详细说明在man 2 wait里面。

ptrace捕获到的每个syscall大部分都有进和出2次;除了execve, 只有一次。

用这个命令来计算代码行数。@3-25目前的结果是4741行。
引用
find -regex ".*\.\(java\|cpp\|c\|h\|sh\|css\|js\|php\)" -exec wc -l {} \; | awk '{sum+=$1}END{print sum}'

人人分享 | 电脑 » 程序设计 | 引用(0) |
不指定 类别: 杂文-未分类 | felix021 @ 2010-3-23 12:30 | 评论(1) | 阅读(273)
zz from http://blog.sina.com.cn/s/blog_565be4b60100h4nm.html

别再喝奶了——一个奶业工人的良心话
文章提交者:burier 加帖在 猫眼看人 【凯迪网络】 http://www.kdnet.net

我不想再忍了,我所知道的奶业内幕!——一个奶业工人的实心话
            我所学的专业是乳品工艺,刚毕业曾在某国内老大级乳业集团工作。职位——收奶员。
            之前的三鹿事件,沸沸扬扬。其实在我看来,没什么奇怪的,事情总是要被揭穿的,只不过是时间问题,以及是哪一家企业成为那个撞上枪口的倒霉蛋。三聚氰胺——冰山的一角。也许这个事件就要告下一个段落,也许仅仅是个序幕的开始……
            离职的员工到处去说原来公司的“坏话”,这个员工一定个没有道德的人。曾经我也是这么认为的,可最近我的想法变了,一个知道内情而不去告诉别人,眼看着别人吃亏上当的人,那才是个彻底道德败坏的人。
            离职后,我没喝过一滴奶!
            我先讲一下,收奶的过程。奶农的牛奶由当地附近村镇的奶站化验收集,按品质高低,分等级付给奶农钱。品质的指标不外乎PH值,蛋白质,干物质这几项。然后由奶站(当然了奶站是私人老板的)用罐装车混装后运到工厂,然后由工厂取样化验,测算指标同样按品质高低,分等级付给奶站钱。
            不知道大家看没看出来,想没想到这种操作模式会出现什么问题?
            有人说了,不是“天然牧场”“工业化收集吗”?
            有,的确有。但是我只能说:兄弟,你很傻,很天真!
            奶农想多赚钱怎么办呢?简单啊,掺水啊。那掺水指标降低就卖不上好价了怎么办?简单啊掺****啊。奶站想多赚钱怎么办呢?简单啊……。奶站的奶,是从各个散户收来混装到罐车的,有一家的突然变质了,怎么办啊,全车都倒了吗?几十吨一罐的奶,蛋白质低了怎么办?干物质低了怎么办?PH值低了怎么办?有的牛病了,用过抗生素怎么办?有的牛用了催奶激素怎么办?
            话说回来了,奶农那点小计量能瞒奶站吗?奶站那点小九九能瞒工厂吗?如果我说,奶站不知情,工厂不知情。都是“不法奶农”干的坏事,全国人要把矛头指向他们批判。那我可就真的,很傻,很天真。
            我们从来不拒收奶,因为我们知道,一件东西是要充分利用的,这样才能取得最大的价值,获得最大的利润。我们分罐储。最好的奶,供到车间做酸奶(发酵型酸奶或搅拌型酸奶),因为不是好奶做不出来。其次,做纯牛奶,高钙奶之类的。再差的奶做花色奶即花生奶,早餐奶等。还有那些发酸的奶怎么办呢,当然不能倒了,做酸性乳饮料,就是广告狂哄乱的,女人小孩都喝的***。这是本公司最大的利润所在,一盒奶的成本,还没有哪个包装盒值钱。还有那种臭的熏人的奶怎么办呢,简单,做冰激凌味道最好。还有那些又臭成粘稠状的怎么办呢,做奶粉。当然这叫工业粉,它有它的用途,不是装袋子就上市场的。
            我们有全球最大最先进的立体式仓库,媒体都赞扬过。可是,你就没想想:这快速消费品,生产出来,就要卖的,搞那么大仓库什么用?酸性乳饮料越存放,味道越好。
            那有人问了:生产日期怎么办?
            简单啊,提前一个月!你也许不信吧,因为,在你心中,那是小黑工厂做的事。
            那又有人问了:市场上卖的岂不是过期奶?
            我就这么告诉你吧:你手中那盒奶,就是过期一周了,你喝也没问题。因为,你所买的奶,是UHT超高灭菌液态奶。
            关于UHT超高灭乳,到底有没有营养,我不想再说了。因为,这个涉及到某人在某年为中国提出的一个口号,我们正向这个口号迈进,别管你喝的是什么奶,反正是牛奶。
            有个广告,中国某企业已经是这种超高灭菌乳全球产销量第一,难道是那些乳业发达国家真的比不上我们了吗?
            其实,是人家不生产这种乳品了。这笑话有点冷,是吧?!
            那有人说了,我们以后喝高端奶吧,广告都说想过有品位的生活就喝那种奶。
            是啊,那奶是贵啊,贵的东西就好啊,那奶蛋白质高啊?高,实在是高!这一点,澳大利亚人都服我们啊。
            我就不相信地球上的奶牛,能挤出那么高蛋白质的奶……
            此言一出,某些专家就会来“辟谣”又得列出一套数据理论,来“引导”大家。
            是啊,我嘴没人家的大,钱更没人家拿的多……
            还有很多关键的还是不说为好,知道了对大家谁都不好。生活是美好的。
            真实案例看三鹿奶粉背后的KB的行业潜规则
            目前的沸沸扬扬的三鹿奶粉事件,作为一个可能的知情者和懂点化学的人,我也来谈谈我的观点:
            1、媒体也好,厂家也好,国*家质量监督也好,还是在忽悠大家。
            为什么我敢这么说?
            因为,三聚氰氨根本不可能直接加入牛奶中,三聚氰氨的市场售价并不低,奶农不可能不计成本的提高浓度;
            其次,三聚氰氨水溶性较差,要想完全溶于牛奶,比较麻烦。
            那为什么媒体,厂家,国*家质量监督要异口同声的说是不法之徒加入了三聚氰氨,其实,就是为为了掩盖一个更可怕的问题:那就是加入的其他毒性更大的东西!说穿了,就是尿素!尿素,作为一种便宜的农家化肥,真是经济实惠的“好添加剂”。
            2、为什么要加尿素?
            因为各乳品公司收购鲜奶,测试的标准主要是奶的蛋白质含量,说穿了就是氮的含量。尿素作为一种最普遍的氮肥,由于它独特的分子结构,记得好象是两个氮分子配个什么我忘了,氮的含量当然高了,混入奶中,提高氮浓度,价格自然也卖得高了;
            3、尿素怎么转化为三聚氰氨的,很简单,奶粉的生产过程就是将鲜奶放在封闭的环境高环境下,然后采取喷雾的方式直接转化成粉状就成了奶粉,而尿素在高下会产生变化,生成三聚氰氨,OK,有毒的奶粉就这样生成了。
            最后,我再谈谈我怎么知道这些内幕的。
            前几年,是2001年还是2002年,我记不太清楚了,在办理一件带B性质的案件时,他们主要罪状之一,就是把持我市某区的牛奶收购市场,长期以次冲好,我们在办案中就了解到,他们在牛奶中加入尿素、少量食用油,然后加大量水(良心好的加自来水,不好的就直接加池塘或者田里的水),最后,用专用的搅拌机进行搅拌,一批蛋白质浓度高的“鲜奶”诞生了!
            但最后几个犯罪分子都翻供,说他们这种做法是普遍的,并不是他们发明的。后来,我们专门去天友了解,确实如此,他们对牛奶收购中出现的这些问题,根本没有比较有效的检测措施,或者是因为收购站点太多,没有精力和金钱来负担这么大的检测开销。所以,对广大奶农的行为基本采取的是默认的态度。
            而且,据在天友的了解,这种现象,在全国的乳制品行业是普遍的,只要存在向奶农收购牛奶,就普遍存在次类现象,所以,三鹿事件的发生,就是必然的。
            而且,这次三鹿出了事,全国其他所有奶制品企业都保持沉默,没有一家跳出来指责,什么原因?
            大家看了我的帖,应该心里有数了吧!
            最后,弱弱的问大家一句,这样的牛奶,你们敢喝吗?!!!
人人分享 | 杂文-未分类 | 引用(0) |
不指定 类别: 电脑 » 程序设计 | felix021 @ 2010-3-22 23:07 | 评论(2) | 阅读(414)
就是前面那个 c/c++版 logger.h 到php的移植。使用基本一致。

代码详见: http://code.google.com/p/woj-land/source/browse/trunk/code/web/lib/logger.lib.php

另附针对此日志格式的php写的查看工具:
http://code.google.com/p/woj-land/source/browse/trunk/tools/logviewer/
人人分享 | 电脑 » 程序设计 | 引用(0) |
不指定 类别: 娱乐 » 贴图 | felix021 @ 2010-3-20 11:30 | 评论(5) | 阅读(471)
点击在新窗口中浏览此图片
人人分享 | 娱乐 » 贴图 | 引用(0) |
不指定 类别: 娱乐 » 搞笑 | felix021 @ 2010-3-12 11:18 | 评论(2) | 阅读(319)
zz from http://hi.baidu.com/whuisland/blog/item/5dcd221ecbe00b14413417e2.html

    实验室里冷极了,没有窗户,不知道是白天还是黑夜。这是一周的最后一天——周末。在这又冷又黑的晚上,一个蓬头散发的小女孩在工位上坐着。她从家里出来的时候还穿着一件外套,但是有什么用呢?那是一件很大的外套──那么大,不知是哪一年买的。她工作的时候的,就把它脱掉了,实验室的师弟嘲笑说,可以拿它当抹布。
    
    小女孩只好一个人做实验,一双小脚冻得红一块青一块的。她的破显示器屏幕上有一大段程序,手里草稿纸上还有一大段。这一整天,程序还是没调过,谁也没帮过她。
    
    可怜的小女孩!她又冷又饿,哆哆嗦嗦地调程序。显示器的光落在她的干枯的长头发上,那头发卷曲着披在肩上,看上去很久没梳,不过她没注意这些。每个桌上都堆满了论文,实验室飘着一股油墨的香味,因为这是论文deadline的时间——她可忘不了这个。
    
    她在一行代码上停了下来,蜷着趴在桌子上。她觉得更冷了。她不敢跟老板说,因为她程序没调过,没拿到一个数据,老板一定会骂她的。再说,换做别的题目跟这个一样难。她们头上只有paper,虽然网上可以下到一些现成的代码,还是仍然没法用。
    
    她的头脑几乎绝望了。啊,哪怕一次小小的成功,对她也是有好处的!她敢把上万行的代码修改一遍。编译运行一下,来找找问题么?她终于按下回车键开始运行。哧!程序开始输出信息了!一行一行的log开始出来了!她把小手拢在显示器上。多么温暖多么明亮的字符啊,简直像一支小小的蜡烛。这是一道奇异的火光!小女孩觉得自己好像坐在一个19寸液晶大显示器前面,显示器还是全新锃亮的,颜色鲜艳,字迹清晰,上边显示着程序输出的正确结果,多么舒服啊!哎,这是怎么回事呢?她刚把头伸出去,想看的仔细一些,程序crash了,大显示器不见了。她坐在那儿,眼前的破显示器上一行
刺眼的segment fault。
    
    她又编译了一遍运行。程序又开始输出信息了,给出log了。显示器的光落在桌子上,那儿忽然变得像打印出来的paper那样洁白工整,她可以一直看到paper上的字迹。IEEE的logo,会议名称和日期,Abstract和Instroduction。更妙的是这篇paper的一作,赫然署着自己的名字!看上去那么诱惑,一直向这个穷苦的小女孩走来。这时候,程序又crash了,她面前只剩一张又硬又旧的桌子。
    
    她又运行了一遍。这一回,她感觉自己坐在布置整齐的会议室里。条幅上写着“博士毕业答辩”,比她去年师姐毕业时用的条幅还要大,还要美。红色的条幅上贴着那几个白色的黑体字,投影仪屏幕上许多幅美丽的彩色画片,跟顶级会议里的presentation一个样,在向她眨眼睛。小女孩向画片伸出手去。这时候,程序又crash了。只见ppt上的图片越升越高,最后成了在天空中闪烁的星星。有一颗星星落下来了,在天空中划出了一道细长的红光。
    
    “有一个什么人快要死了。”小女孩说。唯一疼她的师姐毕业前的时候告诉过她:一颗星星落下来,就有一个灵魂要到图灵那儿去了。
    
    她又编译了一遍。这一回,她把所有的数组size都设大了。师姐出现在亮光里,是那么温和,那么慈爱。
    
    “师姐!”小女孩叫起来,“啊!请把我带走吧!我知道,程序一crash,您就会不见的,像那漂亮的显示器,发表的paper,布置好的答辩会议室一个样,就会不见的!”
    
    她赶紧按了回车键,要把师姐留住。一大堆输出信息发出强烈的光,把实验室照得跟白天一样明亮。师姐从来没有像现在这样高大,这样美丽。师姐把小女孩抱起来,搂在怀里。她们俩在光明和快乐中飞走了,越飞越高,飞到那没有代码,没有论文,也没有毕业的地方去了。
    
    第二天清晨,这个小女孩坐在工位上,两腮通红,嘴上带着微笑。她死了,在周末的实验室累死了。新一周的太阳升起来了,照在她小小的尸体上。小女孩坐在那儿,手还按着在不知用过多少年的键盘上。
    
    “她想自己把程序调一下……”人们说。谁也不知道她曾经看到过多么美丽的东西,她曾经多么幸福,跟着她师姐一起走向新世界的幸福中去。

//看完后有个问题是,都写毕业论文了,还小女孩...装嫩的吧...
人人分享 | 娱乐 » 搞笑 | 引用(0) |
不指定 类别: 电脑 » 程序设计 | felix021 @ 2010-3-10 18:10 | 评论(1) | 阅读(454)
LOGGER v0.0.3
A simple logger for c/c++ under linux, multiprocess-safe

---- CopyLeft by Felix021 @ http://www.felix021.com ----

一个最简单的使用这个日志系统的程序:
#include "logger.h"

int main()
{
    log_open("log.txt");
    log_add_info("id:1001");
    FM_LOG_DEBUG("test %d", 123);
    return 0;
}
记录日志内容为:
引用
--NOTICE-- [2010-03-10 18:10:18] [logger.h:91] log_open
--DEBUG-- [2010-03-10 18:10:18] [main.c:7] [id:1001] test 123
--NOTICE-- [2010-03-10 18:10:18] [logger.h:99] [id:1001] log_close
下载文件 (已下载 113 次)

@ 2010-03-22 p.s. 增加了php移植版
人人分享 | 电脑 » 程序设计 | 引用(0) |
分页: 8/233 第一页 上页 3 4 5 6 7 8 9 10 11 12 下页 最后页 [ 显示模式: 摘要 | 列表 ]