米兰记忆 的个人资料黄昏中的期待照片日志列表更多 ![]() | 帮助 |
|
黄昏中的期待堕落是一种生活态度 2009/12/14 关于JNI的一些东西JNI就是JAVA这个家伙想把其他的代码写的东西一块包起来用的一个接口规范,主要就是想用C/C++写的乱七八糟东西,最近项目要用到,故而有一些研究,但未有结果,郁闷,只能罗列代码(保证调试通过运行成功),反正网上的东西不能一概而抄,因为这帮人都很懒,很少考虑到别人,既然要发布,就应该把注意事项,环境配置,甚至代码要调试通过了,然后完整的发上来,就算不想完整的发,也应该发个能够调试通过运行成功的框架,哎~~找一个这样的东西真难~
好吧,JAVA调用C++的已经很多了,我来示例一下C++调用JAVA的程序:
首先我用的是VS2005,用VC6的自己参考着看:
其次在c/c++的附加文件夹中添加“"C:\Program Files\Java\jdk1.5.0\include\win32";"C:\Program Files\Java\jdk1.5.0\include"”这两个路径
在链接器中的附加库目录中添加“C:\Program Files\Java\jdk1.5.0\lib";"C:\Program Files\Java\jdk1.5.0\jre\lib"”这两个路径
新建C++工程,随便只要是可执行文件项目即可
然后写JAVA程序,放在C++工程目录下
好,代码如下:
package test;
/** * 该类是为了演示JNI如何访问各种对象属性等 */ public class Demo { //用于演示如何访问静态的基本类型属性 public static int COUNT = 8; //演示对象型属性 private String msg; private int[] counts; public Demo() { this("缺省构造函数"); } /** * 演示如何访问构造器 */ public Demo(String msg) { this.msg = msg; this.counts = null; } public String getMessage() { return msg; } /** * 该方法演示如何访问一个静态方法 */ public static String getHelloWorld() { return "Hello world!"; } /** * 该方法演示如何调用动态方 */ public String HelloWord() { System.out.println("JAVA-CLASS:MyTest method:HelloWord:" ); return "helloword";
} /** * 该方法演示参数的传入传出及中文字符的处理 */ public String append(String str, int i) { return str + i; } /** * 演示数组对象的访问 */ public int[] getCounts() { return counts; } /** * 演示如何构造一个数组对象 */ public void setCounts(int[] counts) { this.counts = counts; } /** * 演示异常的捕捉 */ public void throwExcp()throws IllegalAccessException { throw new IllegalAccessException("exception occur."); } } 编译后的class文件也放在同一个包里
然后C++代码:
// testdemo.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include "windows.h" #include "jni.h" #include <string> #include <iostream> using namespace std; jstring NewJString(JNIEnv *env, LPCTSTR str); string JStringToCString (JNIEnv *env, jstring str); int main() { //定义一个函数指针,下面用来指向JVM中的JNI_CreateJavaVM函数 typedef jint (WINAPI *PFunCreateJavaVM)(JavaVM **, void **, void *); int res; JavaVMInitArgs vm_args; JavaVMOption options[3]; JavaVM *jvm; JNIEnv *env; /*设置初始化参数*/ //disable JIT,这是JNI文档中的解释,具体意义不是很清楚 ,能取哪些值也不清楚。 //从JNI文档里给的示例代码中搬过来的 options[0].optionString = "-Djava.compiler=NONE"; //设置classpath,如果程序用到了第三方的JAR包,也可以在这里面包含进来,路径用分号隔开 options[1].optionString = "-Djava.class.path=."; //设置显示消息的类型,取值有gc、class和jni,如果一次取多个的话值之间用逗号格开,如-verbose:gc,class //该参数可以用来观察C++调用JAVA的过程,设置该参数后,程序会在标准输出设备上打印调用的相关信息 options[2].optionString = "-verbose:NONE"; //设置版本号,版本号有JNI_VERSION_1_1,JNI_VERSION_1_2和JNI_VERSION_1_4 //选择一个根你安装的JRE版本最近的版本号即可,不过你的JRE版本一定要等于或者高于指定的版本号 //注意,这个地方的版本号对应可使用的JRE版本最高为1.5.*,最低为1.2.*,如果使用了1.6.*的jre编译java出来的class是找不到的,切记切记!!
vm_args.version = JNI_VERSION_1_4; vm_args.nOptions = 3; vm_args.options = options; //该参数指定是否忽略非标准的参数,如果填JNI_FLASE,当遇到非标准参数时,JNI_CreateJavaVM会返回JNI_ERR vm_args.ignoreUnrecognized = JNI_TRUE; //加载JVM.DLL动态库 HINSTANCE hInstance = ::LoadLibrary(L"C:\\Program Files\\Java\\jdk1.5.0\\jre\\bin\\client\\jvm.dll"); if (hInstance == NULL) { printf("加载JVM动态库错误。%l", ::GetLastError()); return false; } printf("加载JVM动态库成功。"); //取得里面的JNI_CreateJavaVM函数指针 PFunCreateJavaVM funCreateJavaVM = (PFunCreateJavaVM)::GetProcAddress(hInstance, "JNI_CreateJavaVM"); if(funCreateJavaVM==NULL){ FreeLibrary(hInstance); printf("查找JNI_CreateJavaVM过程错误。%l", ::GetLastError()); return false; } printf("查找JNI_CreateJavaVM过程成功。"); //调用JNI_CreateJavaVM创建虚拟机 res = (*funCreateJavaVM)(&jvm, (void**)&env, &vm_args); if (res < 0) { FreeLibrary(hInstance); printf( "创建JVM发生错误。"); return 0; } printf( "创建JVM成功。"); //查找test.Demo类,返回JAVA类的CLASS对象 jclass cls = env->FindClass("test/Demo"); if(cls==NULL){ printf( "找不到类。"); return false; } printf( "类查找成功。"); //根据类的CLASS对象获取该类的实例 jobject obj = env->AllocObject(cls); //获取类中的方法,最后一个参数是方法的签名,通过javap -s -p 文件名可以获得 jmethodID mid = env->GetMethodID(cls, "append","(Ljava/lang/String;I)Ljava/lang/String;"); if(mid==0){ printf( "找不到方法。"); return false; } printf( "方法append查找成功。"); //构造参数并调用对象的方法 const char szTest[] = "电信"; jstring arg = NewJString(env, LPCTSTR(szTest)); jstring msg = (jstring) env->CallObjectMethod(obj, mid, arg, 12); cout<<JStringToCString(env, msg); //调用静态方法 jmethodID mid2 = env->GetStaticMethodID(cls, "getHelloWorld","()Ljava/lang/String;"); jstring msg2 = (jstring)env->CallStaticObjectMethod(cls, mid2); cout<<JStringToCString(env, msg2); //调用动态方法 mid2=env->GetMethodID(cls, "HelloWord","()Ljava/lang/String;"); if (mid2 == 0) { fprintf(stderr, "GetMethodID 'HelloWord' failed\n"); jvm->DestroyJavaVM(); fprintf(stdout, "Java VM destory.\n"); return 0; } msg2 =(jstring) env-> CallObjectMethod(obj, mid2); //销毁虚拟机并释放动态库 jvm->DestroyJavaVM(); ::FreeLibrary(hInstance); return 0; } string JStringToCString (JNIEnv *env, jstring str)// (jstring str, LPTSTR desc, int desc_len) { if(str==NULL) { return ""; } //在VC中wchar_t是用来存储宽字节字符(UNICODE)的数据类型 int len = env->GetStringLength(str); wchar_t *w_buffer = new wchar_t[len+1]; char *c_buffer = new char[2*len+1]; ZeroMemory(w_buffer,(len+1)*sizeof(wchar_t)); //使用GetStringChars而不是GetStringUTFChars const jchar * jcharString = env->GetStringChars(str, 0); wcscpy(w_buffer,(LPCTSTR)jcharString); env->ReleaseStringChars(str,jcharString); ZeroMemory(c_buffer,(2*len+1)*sizeof(char)); //调用字符编码转换函数(Win32 API)将UNICODE转为ASCII编码格式字符串 len = WideCharToMultiByte(CP_ACP,0,w_buffer,len,c_buffer,2*len,NULL,NULL); string cstr = c_buffer; delete[] w_buffer; delete[] c_buffer; return cstr; } jstring NewJString(JNIEnv *env, LPCTSTR str) { if(!env || !str) { return 0; } int slen = strlen((LPCSTR)str); jchar* buffer = new jchar[slen]; int len = MultiByteToWideChar(CP_ACP,0,(LPCSTR)str,strlen((LPCSTR)str),(LPWSTR)buffer,slen); if(len>0 && len < slen) { buffer[len]=0; } jstring js = env->NewString(buffer,len); delete [] buffer; return js; } 这个基本上是抄袭网上某个比较厚道的人的代码,但是如果自己的java环境变量啥的不会设置,从而导致此代码不能运行,不要怪在我头上。 另外这个代码里面没有访问构造函数的代码,不知道能不能访问成功,反正我自己写的程序里面访问构造函数之后,是成功了,但是接下来死都找不到其他方法函数,极其郁闷
继续另外:
关于html的一些问题
为啥
<table>
<tr>
<td>
<img src="XXX.jpg">
</td>
</tr>
<tr>
<td>
<img src="XXX.jpg">
</td>
</tr> </table>
这段代码发到网上就会在tr之间有一行空格
而下面这段代码
<table>
<tr>
<td>
<img src="XXX.jpg"></td>
</tr>
<tr>
<td>
<img src="XXX.jpg"></td>
</tr> </table>
的tr之间就没有空格?
也是极其郁闷的一件事~搞不明白~
继续再另外:
昨晚上看了米兰对帕勒莫的比赛,0:2输了,自己在电脑上同一时间用足球经理刚好也是这一场,结果5:1狂胜~ 阵型都是一样的,4213,除了人员稍有不同,偶的中后卫席尔瓦没有伤,偶的边后卫不是赞布罗塔,是Iraola(8M购得),偶的前腰不是西豆腐,是范德法特(10M购得),后腰上的是弗拉米尼不是安布罗~锋线上的帕托不是博列洛~
2009/12/1 配机归来~终于下定决心去配一台机器了,前后研究了近一个月时间,太平洋,中关村,百度配置吧,基本上只要一上网就会去这些地方逛逛,不然最后被奸商坑了还帮他数钱的事情太多了,不想杯具,只能先下足功夫。于是在周六先去太平洋三期摸了个底,这边感觉除了二线主板代理的太少之外,其他都还好,于是周日直奔太平洋一期,结果还是发现除了技嘉,微星,华硕这类一线品牌的主板之外,二线主板好的如斯巴达克,捷波,双敏什么的基本没见着,还好华擎主板的上海总代理还是能找到,于是在这家坐下,开始报配置,然后JS报价,X3 425,785GMH,西数蓝盘500G,金士顿2G,毁灭者机箱,先锋光驱,一起合起来正好2K,然后就是拿货,过来看,CPU看上去是原包的,不过主板看上去拆封过的痕迹很明显,叫他拿了2,3个过来看都这样,于是作罢,选了一个看上去还比较新的,编号也对的上的,硬盘包装很差,一看就是散装,随便拿了个盒子装着,噻~~后来上机测试了下,也不像是返修盘,于是放过。开始装机,半个小时连壳带系统一并装完,于是测试软件上场,一测之下,发现居然认不出内存品牌,怀疑假货,于是老板脸色很差的给换了宇瞻2G(爷爷的,一开始就问他有没有宇瞻的,硬说不一定找得到,硬说金士顿的保真,靠,谁不知道金士顿的属于造假大户,要是真的能认出来也就算了......也不是说宇瞻的好在哪里,就是假货少,很多东西不能光看牌子响亮的),估计是利润没了,呵呵~~然后,总觉得硬盘看上去也有些不对劲,但是又查不出个什么来,于是抓住JS一句话,让他把三个月包换写在收据上,这才放心
从装机处出来,抱着个大机箱,直奔百脑汇,因为木有钞票了,于是只能找能刷卡的地方买显示器,由于对显示器没有研究得很透彻(主要是牌子和型号都太多),在确定的时候还被数落,说什么自己出钱买的机箱就研究那么精,她出钱买的显示器就一点都不了解,冤枉啊,对于显示器我也是抱着性价比来看的,同样的尺寸不同的牌子和型号价钱相差好几百啊,结果我说的牌子,这家伙又没有爱,非要奔优派这种大牌厂商,买个近1400的才22寸的显示器,说是色彩还原度最高,其实我看起来都差不多....
回到家,先把东西装上,然后开机,重新装一遍系统,进去,装杀毒,防火墙,然后继续重启,突然想起,这个CPU是可以开核的,连忙进BIOS去设一下,再重启,结果虽然开成了X4 B25,但是进不去系统,不断重启,不断调整BIOS,还是不成,于是宣布这颗U的第四核心是个十足的废品,作罢,于是想那就超频吧,先把BIOS放电重置,然后进去调一下,先超个小的,原始2.7,超到3.1不是很过分吧,于是重启,然后进入系统正常。于是关机睡觉。
昨天回去玩了个小3D游戏《火炬之光》,著名的山寨版暗黑,还好,没有发生异常,今天晚上回去继续超,看看能不能上3.5,毕竟这个主板和CPU的默认电压是1.4的,不是传说中的正常的1.325(还是1.375?),反正就是比传说中的高,那就意味着多超一点问题也不大,Everest测下来,火炬之光的时候CPU和主板的温度39,还算比较凉快,空载时候甚至只有23+,还算不错.....
恩,等明年有闲钱,显卡降价之后搞一块好点的显卡,加条内存,基本上就足够了.......嘿嘿~ 2009/11/24 季更,呃,不对,双月更,呃,还是不对,应该叫两月更咳咳~~~好久不来了,最近太忙,知道的人都知道,不知道的人不说也罢
其实想想也就前两个月比较忙,11月份倒还挺闲,但就是想不起来要来这边写点什么东西,难道是有开心网的缘故?还是因为自己MSN联系人也都越来越懒不常更新?还是因为自己这几个月压根就没有上过几次MSN?有人要喷了:你丫就是懒!好吧,我承认,我丫的就是懒,行了吧,满意了吧?这下大家都满足了吧?
换了家公司,做第三方支付业务的,一个星期了,除了开会培训就是培训开会,基本上短时间内不碰代码了,真搞恶~~还真不习惯~
哎,想想其实以前IBM ISSC还是不错的,除了发工资的时候想起来自己只是个外包公司之外,其他的制度,管理什么的都很TMD的人性化,很爽,离家也近,哪像现在,每天眼巴巴的爬起来冲到公司打卡,中午趴桌子睡觉还要设闹钟.....不过这边食堂的东西倒是比原来的便宜和好吃(估计是刚来还不适应)
thinkpad也被收缴了,新公司配了台比以前要好一点的台式电脑,但是笔记本估计近几年是不用想有了,哎,家里面现在的破电脑,连上个开心网都卡的要命,更不用说看看迅雷在线之类的事情,还没有电视,周末的球赛都看不了,每天晚上回家就是看看新闻,还不能打开新浪这种漂浮物暴多的门户网站,必死机~~
岁月如梭,光阴似箭,(好无聊的开头语),昨天无聊翻了翻《彼岸花》,发觉已经没有原来那种静下来的慢慢品味的心境了,都不知道是自己老了,还是怎么着,翻了几页,很快丢在一旁,沉沉睡去~倒是旁边的外滩画报什么的可以从头看到尾,哎~~庸俗了~或者说本来就是个俗人?从来没有高雅过?嗯哪,想想,至少曾经附庸风雅过,或者说想要附庸风雅过~
一直想要不用工作,却一直在为这个目标努力工作着
----《彼岸花》by安妮宝贝 2009/8/11 关于最近,关于自己......总算想起来这边还有一块写字的地方。
也总算没有什么时候都想到去开心网混,那地方真不是个好地方,让人上瘾的东西很多都不是好东西。
笨笨有半米长了......想当年捡回来的时候还可以装在大衣口袋里,现在用铁链都差点拉不住了.....看了看这家伙的脸,居然惊讶的发现似乎有德牧的血统.....
开始习惯在家做饭吃了,虽然只是土豆炒任何的肉类,和黄瓜,苦瓜,冬瓜,大多数瓜类炒任何肉类,以及鸡蛋炒番茄,番茄炒鸡蛋,偶尔会有兴趣搞只鸡来红烧一下,或者炖炖汤,早饭最近也开始弄了,只是白粥而已,不过这和当年高中时候的早餐差不多,一杯牛奶,一个鸡蛋,一碗白粥,一碟榨菜,吃得很舒服,不过要早起半个小时,怨念啊~~
8月底要考toeic,翻了翻书,看了看网上的评论,做了3套模拟题,觉得公司的基本线应该能过,不就730吗?现在随便做做都有800左右,不过想要考到850,还是有点难度的,哎,最近很懒,不想看太多了~
恩呐,发现英雄无敌居然有网络在线版本,下了个客户端,玩了玩,还可以,画面,系统都不错,就是感觉要花时间或者是金钱才能玩的下去,不然连兵都升不起,哎,什么游戏到了网络版本都这样......
吓~~才发现写了不少,居然和我的最初的想法千差万里,哎,本来搞了个很有口水的题目和很有口水的开头,结果写着写着就变成记录流水帐了,噻,前段时间瓜兄还在回味我3年前写的东西,说好,其实我自己已经很少去看,那时候很年轻,很无忧,很背靠群山面朝大海,所以有挥洒不完的口水和泪水,所以.........算鸟,不说了,还是做个俗人,转转帖子,投投票,偷偷菜,钓钓鱼,开心点的好~ 2009/7/14 纵贯线演唱会归来~本来是首发在开心网上的,不过那边的人关注转帖比日记热情高涨的太多,再说,那边也是一时兴起玩玩而已,说不定什么时候就放弃了的,所以还是在这边记录一下比较好:
说到纵贯线,可能没啥人知道,但是提到下面几个名字估计没什么人不知道了:那就是当当当~ 狂放但有所收敛的张震岳~ 老而闷骚的李宗盛~ 温文尔雅但是嗓门最大的周华健~ 猥琐面相但声音迷人的罗大佑~
恩呐,这就是我从昨天演唱会看到的这帮子人的最新形象~不过也许是他们的一贯形象,呵呵,没怎么看过他们以前的演唱会,不得而知~
不过,话说这好像是他们大陆内地最后一场演唱会了,没看的人,残念吧~ 2009/6/9 变革之中的米兰城卡卡终于走了,很奇怪我并没有当年舍瓦离开时的悲伤,也许那个时候是米兰如日中天向日薄西山转变的时候,也许舍瓦的离开只是加速了年华的老去,而每一个人都不会希望自己的心爱老去得如此之快~当然当这种步伐不可避免的时候,当这种状态需要一个翻天覆地的变化的时候,卡卡的离开也许是最正确的选择,对于卡卡本人,已经27岁的他,等不及米兰的重建和复兴,他急需找一家能够快速崛起并且自己喜爱的球队,所以当马戏团最强大的团长弗洛伦蒂诺向他招手的时候,我知道他的离开已经不可避免!而对于米兰来说,这一切是安胖子下课后一切发生变革的最关键一环,也许在商人贝秃的眼里,只有财政赤字被弥补了,这个俱乐部才有继续玩下去的动力,但是就俱乐部本身而言,最重要的并不是卖掉一个卡卡,下课一个安胖子,而是清除马尔蒂尼退役后已经不稳定的圆桌骑士团体,清洗一批老而不弥坚的高薪低能的占着茅坑不拉屎的西多夫法瓦利迪达等人,甚至于加图索和安布罗西尼,虽然不能完全走枪手青春路线的极端,毕竟教授的眼光不是人人都有的,但是青年队的培养和重用确实应该是今后的方向,比如回收的阿巴特等人,青年队的阿尔贝塔奇,斯特拉瑟等人,都是极好的培养对象。当然从外面买人也是必需的,不一定非要那些成名的天才少年,很多其他联赛比如东欧国家的联赛经常出点很便宜的牛人,不过好像米兰的球探体系很少涉足东欧国家,老马尔蒂尼(意大利本土、西欧)、马萨罗(南欧)、德塞利(非洲)、易卜拉欣-巴(法国、北欧)、塞尔吉尼奥(南美)这些人其实眼光都还不错,莱昂纳多也是球探出身,关键在于培养,希望贝秃至少这两年不要想着成绩为好,毕竟年轻人的培养是需要时间和代价的,主教练和球队的融合也是需要时间的,毕竟不是人人都是瓜迪奥拉,不是每只球队都是巴萨,巴萨的崛起也是经过了好几年的沉沦和韬光养晦才得以出现的,并且他们独一无二的青训恐怕是这个世界上最强大的青训营了。
变革是需要阵痛的,时间的长短决定了变革的彻底性,改变过去死气沉沉的老人院的形象不是一个赛季就能够完成的,米兰城的重新辉煌不仅仅是需要建立在巨星的基础上,更重要的是建立在一群激情洋溢的年轻人身上,当然最重要的应该是俱乐部的经营理念的变革,至少以前家庭味道很浓的养老院方式已经明显显示出了他的保守和缺乏前进的动力,估计贝秃也不会去学习马戏团的银河战舰模式,因为他根本没有团长的魄力,比较好的可持续性发展的模式是巴萨的青训结合巨星的方式,当然这个是建立在强大的青训营的基础上,而这样的青训营却不是一两年可以完成的,另外就是尤文图斯的企业型的经营管理理念,没有哪个球星是不能卖的,也不会有哪个球星能够在年老体衰之后还赖着不走的,哪怕是内德维德这样的曾经耀眼过的并为俱乐部作出巨大贡献的人。当然这一理念的实施需要一个强有力的人物,所以当初有传闻莫吉要接替加利亚尼的位置的时候,我还曾高兴了一把,可惜传闻究竟是传闻。虽然不知道这些高层的想法,但是变革是肯定的,动荡也是必经的,但是具体朝着哪个方向走下去,作为局外人和旁观者的我显然只能臆测。
但是作为球迷的我最为关注的还是俱乐部的球员的来去和战术打法,毕竟这个是和比赛的关系最为紧密,也和我的关系更加近一点。所以作为一个有自己见解的球迷总会在赛季前YY一下:
如果以我的想法来组队,或者决定战术的话,应该打4231,两个防守型中场或者是平衡型中场是必不可少的,两个边翼的下底或者内切也是很重要的,然后一个支柱型前锋用来打弱队的铁桶阵,或者用一个速度型前锋反击强队,前腰是用来放小罗的,一旦小罗顶到锋线上去的话,两个边翼要回收,两个中场要前提,变成442的打法。
球员嘛~呵呵,这个是最有YY空间的:
帕托(阿德巴约(2500W))
拉维齐(2000W) 小罗 阿巴特
埃尔纳内斯 弗拉米尼
赞布罗塔 蒂亚戈 博内拉 德希尔维斯特利(1200W)
阿比亚蒂
替补:马尔凯蒂(700W)(门将) 阿尔贝塔奇 马蒂奥尼 安东尼尼 加图索 扬库 博列洛
新人身后的价格都是最低估价,合起来也接近6500W(卡卡的出售所得),当然皮尔洛还可以从车子那里换来3000W,冠军杯奖金还有3000W,加上小皮和卡卡的工资省下后的空间,所以基本收支还是平衡的。
以上阵容及战术纯属YY,如有雷同,纯属巧合~ 2009/5/12 猪啊,流感吧~这个世界啊,要是连猪都流感了,还有什么不能流感呢?就像重庆森林里所说:连保鲜纸都会过期, 我开始怀疑,在这个世界上,还有什么东西是不会过期的?昨天我对瓜兄说了很多,不过都是很无厘头的发泄,似乎很久没有这么有说话的欲望了,也许快要被生活的温开水煮死了吧,可怜的青蛙,死到临头了连自己为什么不能变成王子都没弄明白,或许是巫术?或许是信念不够,或许是天赋不足,又或许是本就没有公主看上你,又或许是你根本就是一只两栖动物,噻~~又来了,真无聊~
然后和瓜兄讨论了一下品貌和才钱的关系,得出的结论是没有结论....事实上看东西如果都是从两面去看的话,那么任何问题都不会有结论,不过可以肯定的是,如果瓜兄在杭州不被速度与激情弄上报纸头条的话,肯定可以过得比现在不寂寞,乱花渐欲迷人眼啊~乱花啊~凭瓜兄的能耐,岂不是翻云覆雨?呃,这个词要解释一下,主要用来形容你把手伸出来来回翻两下这么简单的事,原始成语直到今天早上才想起来,那叫易如反掌.....
所以瓜兄说我是诗人,哎,做得一手好湿不算湿人,做得一身好湿才算啊,后来才发现原来这句话都有引用错误,原话是“淫”,而我用的是“做”,意境不一样,表达的心情也相差甚远.....
于是瓜兄又告诉我一句经典:生死有命,贤妻靠天,当我把这句话挂上签名档之后,立马美国一老友问我:你要结婚了吗?我突然感到原来被朋友关心是件多么遥远的事了,不过距离并不会让这种关心消失,尽管只是一句对状态的疑问而已,比如昨天刚把签名档换成“为什么每次换美元都有分币”,另一个老友还是from USA,问我是不是要来美国,我跟她解释不是,只是还信用卡....为什么关心总来自万恶的资本主义?
所以我说:瓜兄,你流感吧,说不定还能随手弄个炸药奖玩玩~他说:得炸药奖的人不都是最寂寞的人?比如炸药本人?于是我给他说了一通关于炸药奖的好处,他讽刺:总算把你小样的心愿说出来了吧?于是我无语....我终于无语了~~ 2009/4/9 科学普及一下---弓形虫病老妈打电话过来吓我,不要养宠物,小心得病,传说中的弓形虫病,得了以后脑袋里面全是虫子,肺泡里面也都是虫子.....鉴于其医生身份,着实被吓了一跳....
赶紧网上一查,结果还好,没有那么夸张嘛~
首先来自百度百科:
弓形虫就是中医所说的三尸虫。它是专性细胞内寄生虫,球虫亚纲、真球虫目、等饱球虫科、弓形体属。人感染了这种寄生虫,便患了弓形虫病。直接接触猫易受感染。狗的身上和口腔内常有包囊或活体,养狗的人不小心可能感染。其他家畜、家禽,如:鸡、鸭、鹅、猪、牛、马、羊等动物体内有时带弓形虫包囊和活体。所以食用肉、蛋奶也可能感染,鱼肉体内有时也有弓形虫包囊或活体。鱼也是一个传染源,另外某些吸血昆虫,叮咬人时也可以感染。
市售的各种肉制品、香肠、火腿肠、罐头也都可以成为传染源。奶制品、奶油制品、蛋类制品、蛋糕、各类饼干、点心、冰点有时也能成为传染源。
总之不符合卫生标准的鱼、肉、蛋、奶及其制品、都有可能传染弓形虫病。 弓形虫病的预防分为非免疫病源感染的预防和免疫病源感染的预防。
由于饮食或其它原因,大量非免疫病源进入人体内,造成非免疫病源感染,如果被感染者以前没有感染过弓形虫,这便是初次感染,由于体内不能很快生成抗体,会造成极严重的病症和后果甚至死亡。对于非初次感染的免疫低下者同样造成不良后果。如艾滋病患者,癌症晚期等,这种情况当前少见。
但因大多数人都是弓形虫带虫者,形成带虫免疫,被感染后很难出现初次感染的症状。
预防方法是:
1.避免与猫、狗等动物的亲密接触。
2.避免动物尤其是猫的粪便污染水源,蔬菜等。
3.要熟食、不生食动物性食物。
4.厨房里要生、熟食品分离,生、熟食分别加工,如用两块菜板,两把刀具等。
5.饭前便后要养成洗手的习惯。
6.妇女月经期对经血应很好的处理。
二、免疫病源感染的预防
过去一向认为弓形虫滋养体56℃减活,只要熟食就不会感染弓形虫,现代科学研究证明熟食照常会感染弓形虫。只不过是慢性感染,症状较轻微,再加上潜伏期长,使人们不易察觉。要想做到预防慢性感染就要有一整套的预防手段。
预防弓形虫慢性感染要分两个阶段:
第一是当前怎么办?第二是长远根本上怎么解决?
1.是当前首先我们要从饮食上着手,要改变人们的理念,动物性食品中弓形虫感染率很高,尽管熟食也会照常感染,可是我们又不能没有动物性食品。所以暂时先择用以下的方法控制慢性感染:
2.购买动物性食品时应注意挑选。
3.食用动物性食品应有节制,最好不要每天都吃动物性食品。
弓形虫的感染率极高,1985年调查报告美国感染率为84%、法国为90%、维地马拉为94%。因为千百年来没有引起医疗界的重视此病得以广泛流行,造成了世界性的感染。
其次来自检验医学网的学术论文http://www.labmed.cn/Article/jshch/200508/1372.html
其中有这么一段:
我国各地人群弓形虫感染率从0.3%到47.3%不等,但所用检测方法不同,协作组用统一的IHA检测81 963人血清平均感染率为5.17%(0.33%~11.79%),我国人口标准化感染率为6.02%,国际人口标准化感染率为5.52%,检测23种动物血清39 038份,平均阳性率15.36%(0%~75%),首次搞清了我国人群弓形虫感染的特征,推算我国可能有5 138万人感染弓形虫,39万病例未被诊断出来。
再其次来自北京市预防控制中心网站:http://www.bjcdc.org/news.php?id=30808
弓形虫病是由弓形虫引起的一种人畜共患病,为动物源性疾病,分布于全世界五大洲的各地区。动物、鸟类都可成为人弓形虫病的感染源。据资料显示,欧洲大陆和拉丁美洲的成年人50%~80%发生过感染。
后天(获得性)感染主要源于两种途径:一是食用含有弓形虫包囊的生肉或半生肉;二是通过猫粪中排出的卵囊污染手或食物,或者通过蟑螂、苍蝇等把卵囊带到人的食物上,造成人类感染。此外,经过损伤的皮肤或者黏膜、输血、器官移植也都可能感染弓形虫病。
正常人感染弓形虫绝大多数没有症状,或者症状很轻,不知道是什么时候感染的,只有少数人初次感染(或称原发性感染)时有发热、淋巴结肿大、头痛、肌肉关节痛和腹痛,几天或数周后随着人体产生免疫力,症状小时,只是形成的包囊在身体里存在几个月、好几年或者更长时间,一般都是自愈。但是,有严重免疫缺陷的病人,如爱滋病人等,如果发生感染,后果就很严重。怀孕妇女感染可传染给胎儿,也有可能发生严重后果。
狗也可以传染弓形虫,但是它们的粪便和排泄物都没有传染性,如果不吃狗肉就不会传染。有人说“狗与人关系密切,是人类的重要传染源之一”,还有人生下的孩子出现了“智力迟钝、先天性心脏病或者多了一个手指”,就归罪于家里养狗,这些都是缺乏根据的。
好啦,最后我得出一个结论,感染弓形虫不可怕,大部分人可能都有(我就不信你们的卫生状况就那么理想——从不吃烧烤?不吃七八分熟的牛排?从不吃各种不符合卫生标准的鱼、肉、蛋、奶及其制品?从不接触其他感染人群的唾液、眼泪、鼻涕(一个喷嚏就足够了)?),关键在于不要得什么降低免疫力的病,比如艾滋等,噻~~要是得了艾滋,哪怕感冒都要挂掉,还用得着弓形虫?要是弓形虫真的那么可怕,那么首先中国5 138万人口不就等死?快赶上抗日战争死的人了~那么90%的法国人,84%的美国人不都要挂掉?那这个世界不是要崩溃啊?
再者,大多数文献表明,猫才是弓形虫的最大传染源,狗狗不是,只要和它玩过以后吃东西以前洗手就可以了,当然为了减少狗狗染上这种虫子,少带它出去晃悠,不要喂生肉,经常清理便便这都是要做到的。
不过想想MM家那只大胖猫养了快10年了....... 2009/4/7 笨笨日记~自从那天在MM公司看到这只笨狗之后,就决定带它回来了,毫无理由的喜欢这只看上去傻傻的狗狗
D0: mm在公司后面的别墅区发现的,当时叫的很凄惨,一两个小时没人理,于是捡回来,靠馒头活着....
D1: 在“皮氏川菜”吃完饭,带了半盒番茄蛋汤泡饭回去,被这个大笨狗稀里糊涂的全部干光,小肚子圆的不像话,路都走不稳了
D2: 一早起来过去看它,吓~~盒子里全是便便.....拉稀了,控制不住的...也没有精神,帮它洗完沾满便便的四肢和屁屁,就放它到太阳底下晒着,下午带它去看了医生,由于是刚捡回来的,一切状况不明,于是让医生做了全身检查和开了点药,医生说肚里有虫....还有,确定才1个多月的年龄,还不能确定品种(希望不要是只土菜狗,虽然看上去也不像,呵呵),不能洗澡,还确定了没有狂犬病和细小病毒什么XX的恶性疾病。由于这家伙昨晚拉完后一点东西没吃,蔫里吧叽的缩在我大衣口袋一路坐地铁去家乐福买东西。在家乐福楼下买了个鲜虾寿司给它吃,3分钟风卷残云般的搞定,然后又缩回大衣口袋睡觉....然后回宿舍(目前所居暂称宿舍)。在房间靠阳台处开辟了一块地方给它,下面垫上毛巾(2元一条,买了15条)和厕纸。把它放下后放了一盘狗粮,然后自己出去吃饭,吃饭回来,发现有一坨米饭类似还沾有些狗粮的东东在这家伙睡觉的边上,估计是没消化吐的,真汗,以后不能直接喂米饭(类似寿司)和狗粮,不过阳台上倒是有一坨便便...(原来还不算很笨,知道跑到阳台便便^_^),不过不肯吃狗粮了,晕,吐过的有异味?心理阴影?上网查了下,原来狗狗是不能喂得太饱的,尤其是小狗,对饥饿感完全没有抵抗力,会挑食,更会撑死.....
D3_1: 于是昨天晚上就没有给它吃东西,结果叫了一个晚上,隔2个小时叫一次,郁闷.....早上起来放了盘用水泡好的狗粮加了小半罐八宝粥,上班去了。
D3_2: 晚上回来一盘狗粮吃得精光,然后还在呜呜的叫,估计白天一盘不够啊....阳台上多了2坨便便.....晚上放了盘泡好的狗粮加了点灌装的绿豆粥,睡觉....
D4_1: 昨晚上估计是有得东西吃的关系,几乎没有叫(真乖~~),不过早上倒是把我吵醒了,还好今天不上班,看看这条笨狗能玩出什么花样来,泡好一盘狗粮加了点鲜肉汤包的馅,恩,马上扫光,真是对食物没有免疫力啊,不过等我再放一盘的时候,这家伙居然摇摇头走开了......然后爬到阳台上便便(哎~善后工作啊),然后爬回去继续睡觉,今天外面下雨,气温倒不是很冷,真是适合懒惰的家伙
D4_2: 下午,估计是睡够了,回来把那盘早上的多余食物吃掉(居然知道控制食量了,难道是番茄蛋汤泡饭的阴影?),然后开始到处找东西咬....做窝的纸盒边是这家伙的最爱,阳台的大包的系带也是它喜欢尝试的东东.....
D4_3: 晚上,放了两盘狗粮混合八宝粥加包子馅的食物放在它床头,一夜无话
D5: 起来看到吃掉一盘半,还剩半盘,得,这家伙真的会控制自己的食欲了,不算很笨呢~~不过貌似最喜欢的还是每天给它吃的治拉肚子的液体药,用针管喂它,不管饱不饱都很开心的过来咬.......下午去外面带了两包麦当劳的番茄酱回来给它改善一下口味。
D6: 今天天气不错,早上醒来发现这家伙已经爬到阳台上去玩了,这家伙喜欢爬到一个装有一堆铁架子的塑料袋上去然后啃咬我的大包系带,貌似很好玩似的,开始我以为它是饿了,抓他回来丢饭盆旁边,他不理,又跑出去咬,后来丢了块骨头形状的狗钙奶片给它,也不感兴趣,就喜欢咬片状和条状物,做窝的纸盒的边被咬腻了,到阳台到处找东西咬,真无奈~~这只笨狗~~
D7: (今天)早上起来看见昨晚上的一盘食物居然只吃了一半,不知怎么回事....难道开始节食啦?不管他,放满一盆,丢在那里,要上班去了,反正今天天气不错,估计这家伙还会去阳台晒太阳的....
等我回来哦,笨笨~~
2009/3/26 正式成为张江男~房东终于把房子卖掉了......房间中的电视,网线和路由也没有了,生活回归原始,这是所不能忍受的,因此我也决定尽快搬出这个是非之地,不知道房东会不会退押金,(本来说作为下个月的房租的)想来想去,还是住到玉兰香苑那边去吧,毕竟小区成熟一点,550一个月,南阳台隔间,带空调,电视,不大,不过凑活个3,4个月也没有问题,就是宽带费不包比较郁闷....不过这回真的变成张江男了,工作在张江,住在张江.....噻~~~~~~
什么时候才能有自己的房子呢?就不用被赶来赶去了~可惜钱不多,在上海这种鬼地方,苦恼中~~ 2009/3/16 近况~~居然被老妈催博.....看来老妈对我的blog的兴趣大于给我打电话的兴趣啊~~可能是老爸的电话被人为的MISS了太多(原因嘛~~),可老妈的电话可从来不敢的哦~~
好吧,说说近况吧,工作上,还可以,正在完成一个新来的需求设计,不过由于去年的金融危机,估计年终奖没有了(可恶的公司制度,具体不说了),不知道能不能涨工资.....如果不能,还是跳吧,虽然金融危机......
生活上,上个月底刚办了张附近健身中心的健身卡,这个月就听房东说房子要卖掉,4月份拿产证,5月份挂牌,说我从现在开始可以不用交房租了,4月份的拿押金抵掉,5月份,想住到什么时候就住到什么时候(估计是说住到找到买家为止)。一阵狂晕~~哎~~现在租房价格又涨了,附近的有这么便宜的已经绝迹了,张江那边和别人合租吧,8个人住6室2厅,空调,电视,宽带,和人共用阳台,600大洋~~不过不知道等我到了5月份,这样的房间还有没有....
娱乐上,基本除了健健身,也就么有太多娱乐了,主要是MM下个月要去东南亚兜一圈,刚刚搞到的网站的钱,不能动,还要帮她添置些必要的出行物质,呵呵,嗯呐,最近在看一本茅盾文学奖的书《额尔古纳河右岸》,题材倒是蛮吸引的。 2009/2/27 转帖一个:美国加州大学伯克利分校开设《星际争霸》课程美国加州大学伯克利分校在课程中使用了暴雪的即时战略游戏《星际争霸
(Starcraft)》。根据课程描述:该课将在《星际争霸》范围内深入的从理论上探讨战争的 进行、将对游戏的不同方面作报告。从纯理论的观点,到更多从计算方面精确战争的操 控。为了更好的理解课程,学生推荐具备微积分方程知识。此外,该课程通过分析游戏 和重放,去加强决策技能和先进的《星际争霸》知识,并进而推进至现实世界。 点击进入《星际争霸2》专题>>> 课程主页:berkeleystarcraft.com 因为来上课的人太多,要求所有人报上自己的基本信息,然后从里面选62个人。要 求的信息除了基本的个人信息,还有数学水平(推荐要学过微积分和微分方 程),APM,iccup上的level。。。。。 这个老师其实就是个大二学生,这门课还有两个老师,一个是大三学生,一个是已 经本科毕业在附近的投行工作的。sponsor是商学院一个交 gametheory的老师,说自己 也非常喜欢videogame所以很支持这门新课。而且这门课下学期还会有,本学期选不上的 以后可以优先选。可能课程还要录下来放youtube上。 我估计他们可能是要用微分方程算各种战术的最佳农民数啊,最佳建筑时间啊之类 的。为什么是微分方程呢?因为其实农民采矿的过程就是一个 mineral的积分过程嘛。 当然要建立在对starcraft世界的基本定律有准确理解的前提下,不知道他们是不是有暴 雪内部的信息渠道,要不然农民数量和采矿效率的函数要想精确的得到还是挺麻烦的。 估计就是相当于吧大师数字化星际理论用更高级的数学工具扩展一下。 alan的很多观点其实大师都说过的,比如time和attention是最核心的资源,相当于 大师说当代星际就是以人类反应和手速为边界条件,寻求最优的战略战术。 可惜我这学期不能上这个课了。今后有机会再上吧。 把课程计划翻译一下: 第一周:课程简介;starcraft历史回顾 第二周:单位,优缺点,属性,统计(估计会介绍基本的攻击属性啊什么的) 第三周:微观战斗和单位使用(讲微操?) 第四周:部队移动和定位选择(有点宏观了) 第五周:expo和宏操作(expo是什么?) 第六周:建筑摆放和基地layout 第七周:侦查和反侦查 第八周:骚扰 第九周:多线;让对手疲于奔命 第十周:经济基础,微操vs宏操 第十一周:时间选择(timing)和资源估计 第十二周:欺骗 第十三周:mindsetandseriesplay(真不好翻啊。。。) 第十四周:联赛 看上去还是蛮有趣的。作业是每周上交两个replays和自己对replays的深入分析, 优缺点在哪里,如何改进,等等。期末大作业是一个论文,要求学生对某理论、战术或 者计算作出深入的原创分析,回馈给广大starcraft玩家并接受peercriticism。 真是巨汗啊~~~啥都不说了,这样的牛人牛事也只能出现在老美那里....... |
|||
|
|