2011年4月 的存档
2011四月17

一个电游玩家死后进入了地狱

一个电游玩家死后进入了地狱。一个星期之后,撒旦气急败坏地跑来问阎王:“你上周给我送过去的到底是个什么人?”阎王:“怎么了?”撒旦:“怎么了?他一来就跟魔鬼们打得不可开交,最后把他们一个个都驯得服服帖帖,还挨个盘问下一关的出口在哪儿!” @生活微语录

2011四月16

被车撞后

昨晚路上被车撞了,车主开门朝我走过来,还好我急中生智我眼睛一闭赶紧喊“规矩我懂 别让我看到你!!看到你我就没命了 你赶紧开车走吧!!!这点钱算我孝敬你的!!!”说完我把钱包往地上一扔,闭着眼爬开了。现在想想好险噢。。。 @毒药似的女人

2011四月13

活在中国

早上买地沟油炸油条,切苏丹红咸蛋,冲三聚氰氨奶,啃染色馒头。中午食堂要一注水肉炒农药韭菜,有毒猪血和瘦肉精双汇,来碗翻新陈米饭,泡壶香精茶叶。下班买条避孕药鱼,尿素豆芽,开瓶甲醇酒,吃个硫磺馒头。夜宵加膏牛肉外加膨化染色草莓,幸福地钻进黑心棉被睡觉,辐射算神马?@小小星球苹果风

2011四月11

徐志摩

对一个MM说:我想和你一起睡觉——-这是阿Q。但是,如果说的是:我想和你一起起床——-你就是徐志摩了。

2011四月8

告别程序员生涯,一点感慨与诸君共勉

再过几天,我就正式告别程序员生涯了,这也是我最后一次以职业程序员身份在CSDN发表文章。小弟谈谈入行几年来的感受,做一个人生阶段的自我总结,同时希望能给后来者带来点参考意见,能在这段路上走的更好。

本人2002年下半年正式入行,至今2007年4月一直从事软件开发工作。

上大学选择这个专业是阴差阳错,但接触之后对计算机产生了强烈的兴趣,对写软件有一种强烈的冲动。软件成型后,那种成就感和自豪感能给我难以名状的满足。

那时,喜欢看侯捷的书,对核心技术和核心技术人员由衷的崇拜,对技术的追求和水平的提高有一种莫名的狂热,当时我想只要能从事软件开发的工作,起初的薪金待遇可以不计,等我技术方面成熟后,自己就有更高更好的选择了,程序员-系统分析-项目经理-自己的软件公司,这是当时我一个朦胧的程序人生规划。

现在想来,不禁一番唏嘘。

我记得我在培训的时候,一个培训的老师当时是本地一家有名的高科技企业的CTO,确实是专业人才,就是不太会讲课。我问他做程序员的感受,他说经常写程序经常写到凌晨2点钟,很累不过很有意思,因为他喜欢这份职业(当然喜欢啊,他月薪7000-8000,2001年,济南),但也干不长啊,他已经做好了转行的准备,去做和计算机相关的行业。那年他28岁,我22岁。其实他那番话让我和我的同学已经很羡慕,我们羡慕他的技术深度和现在的岗位层次,金领啊,他就是我们眼里的金领啊。

而另一个技术水平很高的老师(在外企写单片机的,30岁,月薪8000-1万),告诉我的是:迟早要转行,就像他现在来当培训教师一样,原因:太累。

我没在乎他们的感慨,因为我年轻啊,加班到夜里2点很轻松啊,何况写写自己喜欢的软件,很高兴啊。30岁那时对我来说只是一个遥远的数字。工作后,感觉完全不一样了。首先很惭愧自己的机遇和能力都不是太好,一直从事基于数据库的信息管理系统的开发(我认为是软件开发里最简单和最基础的方面),换了三家公司,从基础程序员作到了系统分析的层次,现在开始往对外和管理方面发展。可以说粗略的沿着我以前设计的程序人生轨迹走了走。

其间也有过失业的落魄,吃不上饭的紧张,我记的最难的时候到CSDN上来发表文章,得到了很多兄弟姐妹的祝福和支持,给了我很大的鼓励,真的谢谢。

我今年28岁,未婚,彻底烦了。为什么?累;没有希望。先说说我的一点感悟。

软件行业分析:
1、开发出售行业适用的单机版软件。
2、开发行业适用的网络版(B/S)软件,一般是大单,几十万到几百万。
3、和行业的政府主管部门合作,推行一些行业方面的应用软件。
补充:做软件一定要做行业软件,才有前途。

这是本人几年来对这个行业的一点分析。

其实第一种情况是软件公司最通常的盈利模式,这种模式软件价格不高,但只要质量站得住脚,可以细水长流,保证公司的成本没问题,做的好还可以盈利不少,但想做大公司很难。

第二种情况,是真正挣钱的情况,接一个大单,什么钱都挣出来了。可以锻炼开发队伍,建立完整的大的开发框架,而且在这个行业里可以造成很大影响,在一个地方实施成功后可以低成本的再推广,占领一片市场。总之一句话可以让一个小公司真正的成长起来。

第三种情况纯粹就是敛财了,和主管部门合作,强行推广软件,绝对的只赚不赔,我想各个地区都有这样的案例,如税务方面的。缺点是这样的公司都受地域性限制,老板钱拿的太舒服,没什么上进心,公司很难做大,不过也成了地方的行业一霸了,也不错。

累,大家都知道就不说了。为什么没有希望呢?因为我发现一个公司真正勤勤恳垦的实干是挣不到大钱的。

真正能挣到大钱的公司完全都是靠老板的个人关系到什么程度,要想在某个行业里成为软件老大,要看你和这个行业里的政府主管部门的关系如何。我看到了太多软件和他们公司的产品,一个字“烂”。

可那赚钱的速度,呵呵。其实赚多少钱,都是老板的,我们打工的不就是拿个死工资吗,我们更多的人不是连个受剥削的机会都找不到吗?每次面试刚从大学出来的计算机的本科生,我真想对他说:你何必要选择这一行?每次面试那些工作经历比我长,年龄比我大程序员,看着他唯唯诺诺的目光,我就想:曾几何时我也像他这样,被人横眉冷对的面试多少次,以后我是不是还会像他这样,再去看人家的脸色啊?心寒啊!
看着同期毕业的同学,都转了行的,在自己的行业里都混的不错,大部分都比自己挣钱多,有干头;就是挣钱少的,他也干的轻松啊,最简单得到就是和自己项目接洽企业或政府的信息部主管或网管,懂的不多,轻轻松松,钱比我们的多,有问题老找我们,面对他犯的低级错误,我们还得笑呵呵。我心里确实不平衡啊。

一句话,不当程序员后悔,当了程序员更后悔。

出路在哪?我在找…

1、从程序员,到系统分析,到项目经理。条件:必须是大公司,工资高,福利好,有完整的发展曲线;个人对软件开发有持续的热情。
2、转行到大型企业,事业单位,政府做信息化方面的工作(可以说是网管)。生活有保障,不必太辛苦。条件:一定的能力,一定的人际关系。
3、考研,考博再深造,出国或留校搞教学,培养一代不如一代的本科生,闲时打着大学的名义做做项目,赚个房钱。条件:高学历,一定的经济基础和家庭背景。
4、创业:这个谈起来大发了。这里只说条件:很好的项目,创业精神,一定的经济基础。
5、共享软件:很多程序员的梦想,自己写个软件全世界的卖,光注册费够一家人生活的了。成功少数,但只要有的都发达了。如ACDsee,优化大师,超级兔子,千千静听(可到共享软件区查询)。但我告诉你,这方面基本是没法干了,写个小东西挣钱玩玩可以,要靠他吃饭,饿死吧。条件:过硬的专门的软件技术,富有创意的头脑。
6、网站:基本情况和共享软件差不太多,只是比共享软件更好干点。但奇迹照样有,可看看hao123的神话和现在很牛的80后的富翁。关键你有没有这个本事和这个命了。
7、行业信息化咨询顾问:随着各个行业信息化的普及,企业对这方面人才需求很大。真正实现信息化的企业都需要这样一个既懂软件,又懂行业知识的人员,他和网管还是有区别的,他的要求更高些,更像一个自由职业者,专家类型的,这样的人放在企业里小的是个主管,大的是个副总。条件:很深的行业内部的技术或管理经验,较强的软件开发或实施经验;通常35岁以上才是成熟人才,因为经验是要经过历练的。其实就是个人物了。
8、转行,彻底的转行。干不下去,精力不够了,脑子不灵了,钱太少。只要你够理由,你就走。从新开始另一段新的生活,有什么了不起的,哪里也饿不死我这个干软件的。

我是哪种人,我说我是第8种人,看看能不能兼第5,6种人。
我大学由于种种原因没毕业,最高学历是高中,呵呵。就学历而讲,能干到我目前这个水平我觉的可以了,是时候激流勇退了。
就职业规划和财富而言,我这几年走的路并不成功,最起码无奈的转行本身就是一种失败。就我的人生而言,我觉的很成功。我了却了自己的一个人生梦想,在短时间内品尝了一个“高科技”行业的酸甜苦辣,技术出身也使我比别人多了一份淡定和从容。现在我可以放下这段旅程,再来一个新的开始。

程序兄弟们别自卑,说到优势我们有很多:

1、聪明的头脑,较高的智商。有人说程序员呆,不会为人处事,只会和机器打交道,没前途没希望。我告诉你,程序员愿意和机器打交道是因为他专注于技术,是职业特点,如果我们程序员的头脑用到一般行业,企业,政府单位里去耍耍阴谋诡计,骗骗人,卖卖产品或套套别人的话,我敢说,他们十个人也玩不过我们一个人。俗一点:就他们那点智商,也就骗骗鬼啊。

2、创新精神,学习能力和频繁的知识更新速度。做软件的都知道,干一行的软件,就得学一行的知识,这一行的知识越丰富,软件才可能写的越好。我们都具备着很好的学习能力,学习新知识,新技术的能力。不敢说每个做过的行业我们多么了解,最起码我们总是站在风头浪尖上,高屋建瓴,问题看得远,想的长(要不你怎么去设计数据库啊,呵呵)。我们能以非专业人士的角度,系统的分析出一个行业某方面的流程,那当我们就做的这个行业时,我们对我们的能力还没有信心吗?

3、扎实的工作态度,未雨绸缪的危机意识。扎实的工作态度是每个合格的程序员都应该具备的,因为我们要对代码负责;谈到危机意识,我想大多数程序员都和我一样吃者碗里的,看着锅里的吧,也是被社会逼的没办法。其实这都成了我们的优点了,以后从事哪个行业,都需要这两点精神。

我要走了,去干个和软件根本不搭边的行业,我去干是因为我是老板之一,而且钱绝对比现在好赚。过年的时候,我有个外甥刚大学毕业,非要做软件,我给他了以下建议,算是为后来者留一点东西:

1、能进大公司就别去小公司,在大公司里你能接受真正正统软件开发教育,比到小公司当个什么啥都干,啥都不精的主管强。

2、不断的学习,注意技术积累和更新,那是你唯一的资本。

3、做软硬件结合方面的开发,单片机的开发,嵌入式系统的开发,比较有前途而且门槛高。但凡基于数据库的开发,不管是.NET平台的,J2EE平台的,VC,DELPHI,PB,VB都是扯淡,其核心价值是开发人员的经验而不是技术本身。因为真正的核心技术都在国外,中国没有,我发现不管那种语言,最好用的类库或组件都是老外写的。

4、要有个好点的学历,别像我一样。毕竟是个高学历的行业,学历低人家都瞧不起你,你的发展也很有限 。30岁之前,可考虑弄个高程,CCNA,数据库管理员之类比较有含金量的证书打扮打扮自己,过了35岁其实意义就不大了

何去何从,我们都有自己的路要走。我转行了,我就不再是程序员了吗,不!我只是不在做为别人打工的职业程序员了,我要做自己的终身程序员。闲来时我会为自己写程序,写我愿意写的。当写程序不再是一种职业而是一种兴趣和热情时,他才会陪伴我一辈子。我还会再来CSDN,做为一个非专业人士,一个轻松的真正的程序员而来。未来的一天,当我老的时候,不管那时我有什么成就,或不名一文,如果别人问起我以前是干什么的,我希望仍能自豪的回答:“我曾经是一名软件工程师”。

转载自:http://cnbeta.com/articles/139515.htm

2011四月8

面包牌面包

从前有几个卖面包的,一个叫浪浪牌面包,一个叫腾腾牌面包,一个叫搜搜牌面包,一个叫易易牌面包,各品牌竞争很激烈。突然有一天,浪浪牌面包改名了,其它几个品牌瞬间石化。原来它改叫面包牌面包了.……      @蓝鲸财经记者联盟

2011四月5

买彩票中了大奖

我妻子时常说,假如哪一天她买彩票中了大奖,绝对会一分钱也不让给我,立马离婚搬到国外去。她一定不知道,整整5年来我都一直买和她一样号码的彩票……看她到时还笑不笑得出来。”@热门微博

2011四月2

找个媳妇

爹:给你找个媳妇。儿:我自己找!爹:这女孩是比尔盖茨的女儿!儿:这样?行!爹找比尔盖茨:我给你女儿找了一个老公。比尔盖茨:NO,我女儿还小!爹:这人是世界银行副总裁!比尔盖茨:这样?行!爹找世界银行总裁:给你推荐个副总裁!总裁:我有副总裁!爹:他是比尔盖茨的女婿!总裁:这样呀,行!

2011四月2

分手

某天收到一条莫名其妙的信息:“我们还是分手吧,以后不要再联系了。”我猜是一个失恋的人发错了,出于好心我回了条:“你发错了,我不认识你。”片刻,收到另一条信息:“你够狠,这么快就装作不认识了,行,算我瞎了眼。”

2011四月1

Android开发:屏幕常亮 PowerManager和PowerManager.WakeLock

前言

  学习android一段时间了,为了进一步了解android的应用是如何设计开发的,决定详细研究几个开源的android应用。从一些开源应用中吸收点东西,一边进行量的积累,一边探索android的学习研究方向。这里我首先选择了jwood的 Standup Timer 项目。本文将把研究的内容笔记整理,建立一个索引列表。

PowerManager.WakeLock

  PowerManager.WakerLock是我分析Standup Timer源代码时发现的一个小知识点,Standup Timer 用WakeLock保证程序运行时保持手机屏幕的恒亮(程序虽小但也做得相当的细心,考虑的很周到)。PowerManager 和PowerManager.WakerLock7用于对Android设备的电源进行管理。
  PowerManager:This class gives you control of the power state of the device.
  PowerManager.WakeLock: lets you say that you need to have the device on.
  Android中通过各种Lock锁对电源进行控制,需要注意的是加锁和解锁必须成对出现。先上一段Standup Timer里的代码然后进行说明。
private void acquireWakeLock() {
         if (wakeLock == null) {
                Logger.d("Acquiring wake lock");
                PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
                wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, this.getClass().getCanonicalName());
                wakeLock.acquire();
            }

    }

private void releaseWakeLock() {
        if (wakeLock != null && wakeLock.isHeld()) {
            wakeLock.release();
            wakeLock = null;
        }

    }

 

acquireWakeLock()方法中获取了 SCREEN_DIM_WAKE_LOCK锁,该锁使 CPU 保持运转,屏幕保持亮度(可以变灰)。这个函数在Activity的 onResume中被调用。releaseWakeLock()方法则是释放该锁。它在Activity的 onPause中被调用。利用Activiy的生命周期,巧妙的让 acquire()和release()成对出现。

    @Override
    protected void onResume()
    {
        super.onResume();
                //获取锁,保持屏幕亮度
        acquireWakeLock();
        startTimer();
    }
protected void onPause()
    {
        super.onPause();
         synchronized(this) {
                cancelTimer();
                releaseWakeLock();

                if (finished) {
                    clearState();
                } else {
                    saveState();
                }
            }
    }

 

PowerManager和WakeLock的操作步骤
  1.   PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);通过 Context.getSystemService().方法获取PowerManager实例。
  2.   然后通过PowerManager的newWakeLock((int flags, String tag)来生成WakeLock实例。int Flags指示要获取哪种WakeLock,不同的Lock对cpu 、屏幕、键盘灯有不同影响。
  3.   获取WakeLock实例后通过acquire()获取相应的锁,然后进行其他业务逻辑的操作,最后使用release()释放(释放是必须的)。

关于int flags

  各种锁的类型对CPU 、屏幕、键盘的影响:

PARTIAL_WAKE_LOCK:保持CPU 运转,屏幕和键盘灯有可能是关闭的。

SCREEN_DIM_WAKE_LOCK:保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯

SCREEN_BRIGHT_WAKE_LOCK:保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯

FULL_WAKE_LOCK:保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度

ACQUIRE_CAUSES_WAKEUP:Normal wake locks don’t actually turn on the illumination. Instead, they cause the illumination to remain on once it turns on (e.g. from user activity). This flag will force the screen and/or keyboard to turn on immediately, when the WakeLock is acquired. A typical use would be for notifications which are important for the user to see immediately.

ON_AFTER_RELEASE:f this flag is set, the user activity timer will be reset when the WakeLock is released, causing the illumination to remain on a bit longer. This can be used to reduce flicker if you are cycling between wake lock conditions.

权限获取

要进行电源的操作需要在AndroidManifest.xml中声明该应用有设置电源管理的权限。
<uses-permission android:name="android.permission.WAKE_LOCK" /> 你可能还需要 <uses-permission android:name="android.permission.DEVICE_POWER" />

另外WakeLock的设置是 Activiy 级别的,不是针对整个Application应用的。

 

摘自:http://fanwei51880.blog.163.com/blog/static/324067402010108105416798/