当前访问本站: hits

yjhmily

坚持走自己的路……

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  100 Posts :: 8 Stories :: 353 Comments :: 0 Trackbacks

2012年9月29日 #

原文出处:http://space.itpub.net/133735/viewspace-710117 
总结的不错!
-------------------------------------------------------------------------------------------------
生产环境最佳实践
1.linux 系统:
1】关闭文件系统/分区的atime 选项
Vi /etc/fstab
在对应的分区项后面添加noatime ,nodiratime
LABEL=/1 / ext3 defaults 1 1
LABEL=/data1 /data ext4 defaults,noatime,nodiratime 1 2
2】设置文件句柄4k+,目前该配置已经集成到启动脚本中。
Vi /etc/security/limit.conf
* soft nproc 65536
* hard nproc 65536
* soft nofile 65536
* hard nofile 65536
3】不要使用large vm page (不要使用大内存页选项)
Linux 大内存页参考:http://linuxgazette.net/155/krishnakumar.html
4】用dmesg 查看主机的信息。
2.linux 文件系统的选择:
Mongodb 采用预分配的大文件来存储数据,我们推荐
1】ext4
2】xfs
3.内核版本:
网络上对2.6.33-31 以及2.6.32 的表现持怀疑度, 而强力推荐2.6.36
4.线程堆栈的尺寸
默认的线程堆栈尺寸为10m ,调整为1m ,已经集成在启动脚本中。
项目过程中的总结与建议
1.大小写问题
mongodb 是默认区分大小写的,但是这会不会衍生出跟mysql 一样的问题?(mysql 区
分大小写,导致windows 与linux 下的表名,字段名不一致)。
如果无特别用途,建议表名,字段名全部用小写字母。
2.尽可能的缩短字段名的长度
mongodb 的schema free 导致了每笔数据都要存储他的key 以及属性,这导致了这些数
据的大量冗余。开发同事也许考虑到,从易读性出发设计的key 基本比较长,基本都是按
照起字面意思去设计的。这导致key 很长。对应的数据存储占用了很大的空间。
必要的时候,可以考虑建立一个key 与实际意义的map 表,尽量降低key 的长度。
示例定义:
// 基本信息
static final String _ID = "_id";
static final String STATUS_CODE = "sc";
// 缓冲
static final String DATE = "date";
static final String MAX_AGE = "age";
// 内容
static final String CONTENT = "content";
static final String CONTENT_TYPE = "ctype";
static final String CONTENT_LENGTH = "clen";
static final String ZIP = "zip";
3. mongodb 单表最大索引数为64
无索引排序的最大数据量为4M, 超过则报错退出。
建议where 条件尽量落在索引字段上,排序字段需要建立索引,索引的使用原则与oracle
mysql 一致,尽量降低索引数量,索引长度。
mongodb 的查询每次只能用到一个索引,对数据的查询不会“并发”执行
例如: db.tab.find({'id'=1,'name'=2}) 如果‘id’,‘name' 列上分别有索引
对查询效率提升意义不大,如果索引为('id','name') 则大幅提升效率。
4.mongodb 添加字段
如果添加字段且带有default 值,需要全部数据都要修改,这也是设计阶段需要考虑的
事情,这个问题的另外一种解法是应用代码里做一次判断。
5.测试过程的密码问题
对于用作数据库使用的Mongodb,在代码测试阶段都应加上密码验证,目前上线阶段基
本都会在密码验证方面出现问题(做缓存使用的可以不做密码验证)。
6.数据源连接方式
使用连接池模式,尽量减少认证带来的性能额外消耗
建议采用标准的uri 连接方式: mongodb://user:passwd@host:port,host:port/db
7.Mongodb日志量
正常情况下不需要开启-v 日志选项。
Mongodb 的-v 日志适合在开发环境的调试线上部署不建议采用这个参数,目前线上
部署的情况,-v 日志一天也会有几个G 的日志量,去掉这个参数,跟数据查询相关的操作
就不会记日志了,数据库的内部的重要操作还是会写日志的。
8.连接数大小的设置
Mongodb 驱动程序采用的连接池的方式连接到数据库,目前从观察到的情况是应用一
开启便根据变量的设置,建立全部连接,然后提供给程序使用,并且一旦其中某个连接
到数据库的访问失败,则会清空整个连接池到这台数据库的连接,并重新建立连接。
而mongodb 对中断连接的垃圾清理工作则是懒惰的被动清理方式,如果驱动程序端配
置的连接数过大,一旦发生重连,则会导致mongo 端堆积大量的垃圾连接数据,导致
主机资源耗尽。
建议: mongodb 驱动的连接池大小的设置一般应该控制100 以下,一般情况30-50 足
够支撑应用访问。
9.锁的问题
Mongodb 对数据库的访问全部加锁,如果是查询请求则设置共享锁,数据修改请求,
则设置全局排他锁,并且是实例级别的排他锁。并且写锁会阻塞读请求,如果长时间持有
写锁,会阻塞整个实例的读请求。
部署建议:
1】一般情况下,建议不同的应用不要合用一套示例。
2】如果资源不满足,需要合用,应该具有相同属性的应用合用一套实例。
例如合同mongo 的应用都是读多写少,防止一台写多应用阻塞读请求。
10.关于map/reduce问题
mongodb 对map/reduce 的支持是单线程的,我们不建议在前台使用该功能, group by
是通过map/reduce 实现的,开发过程中,要慎用。
11.安全问题
1】Mongodb 运行在mongodb 用户之上,并禁止mongodb 用户登录
2】使用Mongodb 自带的认证方法(adduser、auth)限制用户访问行为
3】将Mongodb 置于内网环境中
4】Mongodb 必须暴露在外网环境中的时候,使用IPTABLES 等网络层技术进行防护
5】网络层面内容为明文传输,可以考虑存储加密文档,应用端,加解密。
12.性能监控
Mongodb 自带有性能数据收集系统
Mongostat 实时采集数据库的多项指标,提供http console 端口号为应用端口号+1000。
关注的主要性能指标:
1】Faults:显示Mongodb 每秒页面故障的数量,这个是mongoDB 映射到虚拟地址空间,
而不是物理内存,这个值如果飙高的话,可能意味着机器没有足够的内存来
存储数据和索引。
2】Flushes:每秒做了多少次fsync,显示多少次数据被刷新进了磁盘
3】locked:写锁
4】idx miss:索引未命中比例
5】qr | qw:读写锁的请求队列长度。
6】conn: 当前已经建立的连接数。
其他命令:
Db.stat()
db.serverStatuse()
Db.collection.stats()
13.碎片问题
Mongodb 数据库如果数据修改很频繁,会出现比较严重的空间碎片问题,表现在磁盘
文件扩张与实际数据量不相符,内存不够用,索引命中率低,查询效率降低。
碎片整理,目前我们采用的版本没有太有效的方法。
可以用db.repaireDatabase() 来整理数据库,这个过程非常的慢
如果是Master-slave 模式则相当于执行一次主从切换,然后从新建立从库。
如果是replSet 架构可以停掉数据库,然后删除数据目录,从新从复制复制组中全同步数据,
这个时候要考虑oplog 的尺寸。
一个大体的步骤:
1.】先调用rs.freeze(1200),将每个不想让它成为primary 的机器让它在1200 秒内无法成为
primary(这步也可以不做)
2. 】将primary stepDown,不出意外新的primary 会起来.
3. 】将原primary kill 掉.
4. 】删掉所有data 数据(调用repair 很慢,真不如干掉重新来)
5. 】再重启动原primary 的进程
6. 】以此循环完成整个复制组的全部重建。
14.系统备份:
Mongodb 目前不支持在线备份,只能离线备份。
我们采用的架构为replSet 和Master-slave .
基于我们目前的架构以及数据一致性要求,我们没有安排相关的备份系统。
15.应用代码中Mongodb连接问题
在有些应用在使用Mongodb 过程中会存在以下两个小问题:
1. 在应用启动过程中,应用存在要求连接池中所有的连接都建立成功才让应用正
常启动,这种做法不可取,因为存在网络问题、Mongodb 拒绝连接或Mongodb 假死情况,如
果没加外部try catch 做防护,则Resin 不断重启也不能正常启动端口。
2.有些应用在使用Mongodb 中连接池配置了safe=true,w=1;这种配置意味着客户端在
插入数据或更新数据的时候,要求mongodb 必须将所更新的数据写入磁盘并返回更新成功
的信息给程序。如果碰上应用程序访问压力大,mongodb 就会反应迟钝,并会发生假死可能,
针对此情况,需要评估数据的一致性需求,做出合适调整。我们一般建议关闭此选项。
16.补充开发方面的一些问题
1】skip+limit翻页,越往后面越慢,有资料说用数组元素的分页可以解决,目前还没
试过,比较靠谱的做法是,先找出上次的id,翻页的时候不用skip:
last_row_id = ObjectId(‘....’);
db.activity_stream->find({_id:{$lt: last_row_id },
user_id:20 } ).sort( {_id:-1} ).limit(10);
2】.只有真正需要的字段才select出来
3】.更新的某条数据的时候,先查出来再更新会减小锁的时间
4】.只有返回很少结果的查询才用索引,否则会加载太多数据,比没有用索引还慢
5】.属性比较多的时候,建立分层的关系能够提高查询效率,否则每个记录都要过一遍
才能找到要的属性
17.关于硬件资源的选择:
虚拟机可以很好的隔离资源,并可动态的扩展。
我们建议mongodb 的部署采用虚拟机的方式,每个虚拟机部署一个实例,使各节点分
散在不同的物理机上,根据应用的前期预测,平衡虚拟机的之间的i/o。
posted @ 2012-09-29 22:17 kangxm 阅读(569) | 评论 (0)编辑 收藏

2012年8月10日 #

adb shell

# mount -oremount,rw /dev/block/mtdblock3 /system

# pm list packages -f (列出apk和包名的对应关系)
# cd /system/app (APK文件所在地)
# rm Mms.* (rom自带的短信)
# exit

 

adb uninstall com.android.mms

 

返回Success,就说明卸载成功了

 

注意..
删除之前, 最好用

  1. adb pull /system/app/xxx.apk .

复制代码

给备份一下, 避免出错(系统老是Force Close, 没法用).
出错后, 可以用

  1. adb push xxx.apk /system/app
adb shell

# mount -oremount,rw /dev/block/mtdblock3 /system

# pm list packages -f (列出apk和包名的对应关系)
# cd /system/app (APK文件所在地)
# rm Mms.* (rom自带的短信)
# exit

 

adb uninstall com.android.mms

 

返回Success,就说明卸载成功了

 

注意..
删除之前, 最好用

  1. adb pull /system/app/xxx.apk .

复制代码

给备份一下, 避免出错(系统老是Force Close, 没法用).
出错后, 可以用

  1. adb push xxx.apk /system/app
posted @ 2012-08-10 17:56 kangxm 阅读(461) | 评论 (0)编辑 收藏

2011年8月22日 #

最近的机器内存又爆满了,出了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。
下面是参考网络资源和总结一些在java编程中尽可能做到的一些地方
-
1.尽量在合适的场合使用单例
使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面
第一,控制资源的使用,通过线程同步来控制资源的并发访问
第二,控制实例的产生,以达到节约资源的目的
第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信
-
2.尽量避免随意使用静态变量
要知道,当某个对象被定义为stataic变量所引用,那么gc通常是不会回收这个对象所占有的内存,如
public class A{
static B b = new B();
}
此时静态变量b的生命周期与A类同步,如果A类不会卸载,那么b对象会常驻内存,直到程序终止。
-
3.尽量避免过多过常的创建java对象
尽量避免在经常调用的方法,循环中new对象,由于系统不仅要花费时间来创建对象,而且还要花时间对这些对象进行垃圾回收和处理,在我们可以控制的范围内,最
大限度的重用对象,最好能用基本的数据类型或数组来替代对象。
-
4.尽量使用final修饰符
带 有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String。为String类指 定final防止了使用者覆盖length()方法。另外,如果一个类是final的,则该类所有方法都是final的。java编译器会寻找机会内联 (inline)所有的final方法(这和具体的编译器实现有关)。此举能够使性能平均提高50%。
-
5.尽量使用局部变量
调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较快。其他变量,如静态变量,实例变量等,都在堆(Heap)中创建,速度较慢。
-
6.尽量处理好包装类型和基本类型两者的使用场所
虽然包装类型和基本类型在使用过程中是可以相互转换,但它们两者所产生的内存区域是完全不同的,基本类型数据产生和处理都在栈中处理,包装类型是对象,是在堆中产生实例。
在集合类对象,有对象方面需要的处理适用包装类型,其他的处理提倡使用基本类型。
-
7.慎用synchronized,尽量减小synchronize的方法
都 知道,实现同步是要很大的系统开销作为代价的,甚至可能造成死锁,所以尽量避免无谓的同步控制。synchronize方法被调用时,直接会把当前对象锁 了,在方法执行完之前其他线程无法调用当前对象的其他方法。所以synchronize的方法尽量小,并且应尽量使用方法同步代替代码块同步。
-
8.尽量使用StringBuilder和StringBuffer进行字符串连接
这个就不多讲了
-
9.尽量不要使用finalize方法
实际上,将资源清理放在finalize方法中完成是非常不好的选择,由于GC的工作量很大,尤其是回收Young代内存时,大都会引起应用程序暂停,所以再选择使用finalize方法进行资源清理,会导致GC负担更大,程序运行效率更差。
-
10.尽量使用基本数据类型代替对象
String str = "hello";
上面这种方式会创建一个“hello”字符串,而且JVM的字符缓存池还会缓存这个字符串;
String str = new String("hello");
此时程序除创建字符串外,str所引用的String对象底层还包含一个char[]数组,这个char[]数组依次存放了h,e,l,l,o
-
11.单线程应尽量使用HashMap, ArrayList
HashTable,Vector等使用了同步机制,降低了性能。
-
12.尽量合理的创建HashMap
当你要创建一个比较大的hashMap时,充分利用另一个构造函数
public HashMap(int initialCapacity, float loadFactor)
避 免HashMap多次进行了hash重构,扩容是一件很耗费性能的事,在默认中initialCapacity只有16,而loadFactor是 0.75,需要多大的容量,你最好能准确的估计你所需要的最佳大小,同样的Hashtable,Vectors也是一样的道理。
-
13.尽量减少对变量的重复计算
for(int i=0;i<list.size();i++)
应该改为
for(int i=0,len=list.size();i<len;i++)
并且在循环中应该避免使用复杂的表达式,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。 
-
14.尽量避免不必要的创建
A a = new A();
if(i==1){list.add(a);}
应该改为
if(i==1){
A a = new A();
list.add(a);}
-
15.尽量在finally块中释放资源
程序中使用到的资源应当被释放,以避免资源泄漏。这最好在finally块中去做。不管程序执行的结果如何,finally块总是会执行的,以确保资源的正确关闭。 
-
16.尽量使用移位来代替'a/b'的操作
"/"是一个代价很高的操作,使用移位的操作将会更快和更有效
int num = a / 4;
int num = a / 8;
应该改为
int num = a >> 2;
int num = a >> 3;
但注意的是使用移位应添加注释,因为移位操作不直观,比较难理解
-
17.尽量使用移位来代替'a*b'的操作
同样的,对于'*'操作,使用移位的操作将会更快和更有效
int num = a * 4;
int num = a * 8;
应该改为
int num = a << 2;
int num = a << 3;
-
18.尽量确定StringBuffer的容量
StringBuffer 的构造器会创建一个默认大小(通常是16)的字符数组。在使用中,如果超出这个大小,就会重新分配内存,创建一个更大的数组,并将原先的数组复制过来,再 丢弃旧的数组。在大多数情况下,你可以在创建 StringBuffer的时候指定大小,这样就避免了在容量不够的时候自动增长,以提高性能。 
如:StringBuffer buffer = new StringBuffer(1000);  
-
19.尽量早释放无用对象的引用
大部分时,方法局部引用变量所引用的对象 会随着方法结束而变成垃圾,因此,大部分时候程序无需将局部,引用变量显式设为null。
例如:
Public void test(){
Object obj = new Object();
……
Obj=null;
}
上面这个就没必要了,随着方法test()的执行完成,程序中obj引用变量的作用域就结束了。但是如果是改成下面:
Public void test(){
Object obj = new Object();
……
Obj=null;
//执行耗时,耗内存操作;或调用耗时,耗内存的方法
……
}
这时候就有必要将obj赋值为null,可以尽早的释放对Object对象的引用。
-
20.尽量避免使用二维数组
二维数据占用的内存空间比一维数组多得多,大概10倍以上。
-
21.尽量避免使用split
除 非是必须的,否则应该避免使用split,split由于支持正则表达式,所以效率比较低,如果是频繁的几十,几百万的调用将会耗费大量资源,如果确实需 要频繁的调用split,可以考虑使用apache的StringUtils.split(string,char),频繁split的可以缓存结果。
-
22.ArrayList & LinkedList
一 个是线性表,一个是链表,一句话,随机查询尽量使用ArrayList,ArrayList优于LinkedList,LinkedList还要移动指 针,添加删除的操作LinkedList优于ArrayList,ArrayList还要移动数据,不过这是理论性分析,事实未必如此,重要的是理解好2 者得数据结构,对症下药。
-
23.尽量使用System.arraycopy ()代替通过来循环复制数组
System.arraycopy() 要比通过循环来复制数组快的多 
-
24.尽量缓存经常使用的对象
尽可能将经常使用的对象进行缓存,可以使用数组,或HashMap的容器来进行缓存,但这种方式可能导致系统占用过多的缓存,性能下降,推荐可以使用一些第三方的开源工具,如EhCache,Oscache进行缓存,他们基本都实现了FIFO/FLU等缓存算法。
-
25.尽量避免非常大的内存分配
有时候问题不是由当时的堆状态造成的,而是因为分配失败造成的。分配的内存块都必须是连续的,而随着堆越来越满,找到较大的连续块越来越困难。
-
26.慎用异常
当 创建一个异常时,需要收集一个栈跟踪(stack track),这个栈跟踪用于描述异常是在何处创建的。构建这些栈跟踪时需要为运行时栈做一份快照,正是这一部分开销很大。当需要创建一个 Exception 时,JVM 不得不说:先别动,我想就您现在的样子存一份快照,所以暂时停止入栈和出栈操作。栈跟踪不只包含运行时栈中的一两个元素,而是包含这个栈中的每一个元素。
如 果您创建一个 Exception ,就得付出代价。好在捕获异常开销不大,因此可以使用 try-catch 将核心内容包起来。从技术上讲,您甚至可以随意地抛出异常,而不用花费很大的代价。招致性能损失的并不是 throw 操作——尽管在没有预先创建异常的情况下就抛出异常是有点不寻常。真正要花代价的是创建异常。幸运的是,好的编程习惯已教会我们,不应该不管三七二十一就 抛出异常。异常是为异常的情况而设计的,使用时也应该牢记这一原则。

文章主要是为了抛砖引玉,希望有更多牛人的指点

谢谢的 xuanyuan 的建议:
===================================================
7.慎用synchronized,尽量减小synchronize的方法
re:同意,不过文中有个地方说错了,使用synchronized关键字并不一定都是锁定当前对象的,要看具体的锁是什么。如果是在方法上加的synchronized,则是以对象本身为锁的,如果是静态方法则锁的粒度是类。
---------------
9.尽量不要使用finalize方法
re:同意,其实不推荐用finalize方法的根本原因在于,JVM的规范并不保证何时执行该方法,所以用这个方法来释放资源很不合适,有可能造成长时间资源得不到释放。
---------------
16.尽量使用移位来代替'a/b'的操作;17.尽量使用移位来代替'a*b'的操作
re:个人不太同意这两条。这样做确实有更好的性能,但是却牺牲了可读性。这两个操作符对很多程序员来说并不直观。我认为在如今硬件价格不那么昂贵的情况下,略微牺牲一些性能,换来更好的可读性和可维护性是好的选择。
===================================================
19.尽量早释放无用对象的引用
大部分时,方法局部引用变量所引用的对象 会随着方法结束而变成垃圾,因此,大部分时候程序无需将局部,引用变量显式设为null。
例如:
Public void test(){
Object obj = new Object();
……
Obj=null;
}
上面这个就没必要了,随着方法test()的执行完成,程序中obj引用变量的作用域就结束了。但是如果是改成下面:
Public void test(){
Object obj = new Object();
……
Obj=null;
//执行耗时,耗内存操作;或调用耗时,耗内存的方法
……
}
如果Object obj = new Object(); 如果这对象并不是大对象,这有必要吗?Obj=null;只是告诉jvm这个对象已经成为垃圾,至于什么时候回收,还不能确定! 这可读性也不好!
===================================================
posted @ 2011-08-22 15:18 kangxm 阅读(499) | 评论 (0)编辑 收藏

2011年4月6日 #

提示/boot目录空间不足,查了一些资料,最后把久的内核给卸载得以解决。

1.首先查看自己使用的内核

lxz@lxz-pc:~$ uname -a

Linux lxz-pc 2.6.35-25-generic #44-Ubuntu SMP Fri Jan 21 17:40:48 UTC 2011 i686 GNU/Linux


2.然后查看自己boot目录,选择需要卸载的版本
lxz@lxz-pc:~$    cd /boot
lxz@lxz-pc:/boot$  ls -l
总计 35125
-rw-r--r-- 1 root root   705861 2011-01-22 06:04 abi-2.6.35-25-generic
-rw-r--r-- 1 root root   709370 2011-03-01 23:56 abi-2.6.35-28-generic-pae
-rw-r--r-- 1 root root   128615 2011-01-22 06:04 config-2.6.35-25-generic
-rw-r--r-- 1 root root   129056 2011-03-01 23:56 config-2.6.35-28-generic-pae
drwxr-xr-x 3 root root     7168 2011-03-23 10:31 grub
-rw-r--r-- 1 root root 10761551 2011-03-04 10:49 initrd.img-2.6.35-25-generic
-rw-r--r-- 1 root root 10741569 2011-03-23 10:18 initrd.img-2.6.35-28-generic-pae
drwx------ 2 root root    12288 2011-01-05 04:52 lost+found
-rw-r--r-- 1 root root   165084 2010-09-25 01:14 memtest86+.bin
-rw-r--r-- 1 root root   167264 2010-09-25 01:14 memtest86+_multiboot.bin
-rw-r--r-- 1 root root  1831296 2011-01-22 06:04 System.map-2.6.35-25-generic
-rw-r--r-- 1 root root  1873873 2011-03-01 23:56 System.map-2.6.35-28-generic-pae
-rw-r--r-- 1 root root     1192 2011-01-22 06:06 vmcoreinfo-2.6.35-25-generic
-rw-r--r-- 1 root root     1196 2011-03-01 23:57 vmcoreinfo-2.6.35-28-generic-pae
-rw-r--r-- 1 root root  4294672 2011-01-22 06:04 vmlinuz-2.6.35-25-generic
-rw-r--r-- 1 root root  4428048 2011-03-01 23:56 vmlinuz-2.6.35-28-generic-pae
上面显示的情况中,是我已经把linux-image-2.6.35-27-generic的结果

3.卸载旧内核应该使用命令:
lxz@lxz-pc:/boot$  sudo apt-get remove linux-image-2.6.35-27-generic

4.查看/boot目录:
lxz@lxz-pc:/boot$ sudo du -m /boot           //以MB为单位显示
1    /boot/grub/locale
2    /boot/grub
1    /boot/lost+found
36    /boot

5.查看文件系统使用情况,和文件系统被挂在的位置:
lxz@lxz-pc:/boot$  df  -lh
文件系统            容量  已用  可用 已用%% 挂载点
/dev/sda7              71G  7.7G   60G  12% /
none                 1001M  244K 1001M   1% /dev
none                 1007M  216K 1006M   1% /dev/shm
none                 1007M  100K 1006M   1% /var/run
none                 1007M     0 1007M   0% /var/lock
/dev/sda8              92M   42M   46M  48% /boot
posted @ 2011-04-06 12:09 kangxm 阅读(3130) | 评论 (0)编辑 收藏

2011年3月23日 #

在ubuntu环境下进行android开发,想把目标设备定为真实的手机。

前几天刚买了个defy就试了下,结果打开手机usb调试模式连接到电脑后,在eclipse里面手机名字显示为一堆???号,且无法使用。

需要以下的步骤才能连接到:

1 把手机设备为usb调试模式并和电脑连接

2 打开终端运行

    lsusb


    屏幕上会有一行显示类似

    Bus 002 Device 012: ID 22b8 :xxxx Motorola xxxxxxxxxxxx

    这就是你的android手机了

3 然后在终端运行

   sudo gedit /etc/udev/rules.d/50-android.rules

   并编辑其中加入行: SUBSYSTEM=="usb", SYSFS{"Motorola xxxxxxxxxxxx "}=="22b8 ", MODE="0666"

4 接着运行

    sudo chmod a+rx /etc/udev/rules.d/50-android.rules

    sudo /etc/init.d/udev restart

5 最后进入android sdk的tools目录 platform-tools 运行

    sudo ./adb kill-server

    sudo ./adb devices

试着重新打开eclipse,在运行参数里选则手动选取目标设备,这时在Device Chooser里面应该就可以看到正常显示出名字的手机了。

posted @ 2011-03-23 14:11 kangxm 阅读(1941) | 评论 (2)编辑 收藏

2010年11月3日 #

    做个记录:

1、删除 mysql

1 sudo apt-get autoremove --purge mysql-server-5.0
2 sudo apt-get remove mysql-server
3 sudo apt-get autoremove mysql-server
4 sudo apt-get remove mysql-common (非常重要)
上面的其实有一些是多余的,建议还是按照顺序执行一遍

清理残留数据

dpkg -|grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

2、安装 mysql

1 sudo apt-get install mysql-server
2 sudo apt-get install mysql-client
3 sudo apt-get install php5-mysql(安装php5-mysql 是将php和mysql连接起来 )
 
一旦安装完成,MySQL 服务器应该自动启动。您可以在终端提示符后运行以下命令来检查 MySQL 服务器是否正在运行:
1 sudo netstat -tap | grep mysql


当您运行该命令时,您可以看到类似下面的行:

tcp 0 0 localhost.localdomain:mysql *:* LISTEN -

如果服务器不能正常运行,您可以通过下列命令启动它:


1 sudo /etc/init.d/mysql restart


3、进入mysql

$mysql -uroot -p 管理员密码
配置 MySQL 的管理员密码:

1 sudo mysqladmin -u root password newpassword




posted @ 2010-11-03 13:49 kangxm 阅读(48330) | 评论 (31)编辑 收藏

2010年8月10日 #

诸如svn、subclipse之类的名词解释我就不在这里罗嗦了,直接进入正题,

先说说什么环境下会遇到javaHL的问题:
      当SVN服务器为windows2003时,且客户端的eclipse运行在linux(这里以Ubuntu为例)上时,一般情况下SVN的接口都只能用javaHL
其他情况下,接口使用SVNkit就完全足够了;
      如果没有安装javaHL的话,一般启动eclipse或者更新subclipse插件是会报如下错误:

Failed to load JavaHL Library. These are the errors that were encountered: no libsvnjavahl-1 in java.library.path no svnjavahl-1 in java.library.path no svnjavahl in java.library.path java.library.path = /usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/i386/client::/ usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/i386::/usr/lib/firefox:/usr/lib/ firefox/:/usr/java/packages/lib/i386:/lib:/usr/lib
其实就是说没有安装javaHL.

再说说如何安装javaHL吧(以Ubuntu操作系统为例):
       1、在终端运行:sudo apt-get install libsvn-java
       2、检查/usr/lib/jni目录是否存在,如果不存在,说明javaHL没有安装成功

最后需要修改eclipse配置,使javaHL起作用:
       1、在eclipse目录下的eclipse.ini添加: -Djava.library.path=/usr/lib/jni
       2、确认是否已经安装subclipse插件,如果没有,请自行安装,可以直接在eclipse中更新,也可以下载subclipse的包,手动安装插件
       3、重启eclipse,一切搞定!!!


posted @ 2010-08-10 01:35 kangxm 阅读(6883) | 评论 (0)编辑 收藏

2010年4月20日 #

        
        目前手上的项目需要用到memory cache,于是我选择强大的Memcached。至于Memcached的强大先不在这里说了,
后续有时间,我专门来介绍一下Memcached吧。今天只介绍下安装和配置;
         直接进入主题吧;
         1、下载
               Memcached下载地址: http://memcached.org/  我下载的最新版本v1.45
               Libevent下载地址:http://www.monkey.org/~provos/libevent/   我下载的版本是libevent-1.4.13-stable
              
          因为Memcache用到了libevent这个库用于Socket的处理,所以需要安装libevent

        2、先安装libevent
             # tar zxvf libevent-1.4.13-stable.tar.gz
             # cd libevent-1.4.13-stable
             # ./configure –prefix=/usr
             # make
             # make install
      
        3、再安装Memcached,同时需要安装中指定libevent的安装位置:
             # tar zxvf memcached-1.4.5.tar.gz
             # cd memcached-1.4.5
             # ./configure –with-libevent=/usr
             # make
             # make install
             安装完成后会把memcached放到 /usr/local/bin/memcached ,

        4、memcached的基本设置

             启动Memcache的服务器端:
             # /usr/local/bin/memcached -d -m 100 -u root -l 192.168.1.192 -p 12000 -c 256 -P /tmp/memcached.pid

    -d选项是启动一个守护进程,
    -m是分配给Memcache使用的内存数量,单位是MB,我这里是100MB,
    -u是运行Memcache的用户,我这里是root,
    -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.1.192,
    -p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
    -c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
    -P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,

           如果要结束Memcache进程,执行:

           # kill  cat /tmp/memcached.pid

          也可以启动多个守护进程,不过端口不能重复。

            
posted @ 2010-04-20 12:19 kangxm 阅读(574) | 评论 (0)编辑 收藏

2010年4月16日 #

原处:http://www.javaeye.com/topic/644277

《为什么毕业后5年同学间的差距会拉得如此巨大?》 引起大家不少的共鸣,今天继续发布一篇励志的文章,首先声明:如果你是“愤青”或“类愤青”,对不起,请你离开,我怕我的观点再次伤害你那“纯洁”得几乎不识人间烟火的心灵!

   如果你想从此改变自己,那么,就花上十几分钟的时间,仔仔细细把这篇文章看完。如果你想改变自己的命运,那么,从现在就开始行动。有时候我们之所以失 败,99%的原因是因为说得太多,而行动得太少!那1%的人或许并不聪明,或许只是小学毕业,但是人家成功了,做了你的上司,那是因为人家善于用行动证明 自己,而不是嘴巴。我不敢保证看了我这篇文章就一定会使你平步青云,我没有那个本事。如果你有一天飞黄腾达,也绝对与这篇文章没有直接的关系。因为,你的 命运,只掌握在你自己的手中!

   同样是打工,为什么你一个月只有2、3K,而唐骏的身价却可以高达10亿?

   或许你会反驳我,说人人都成为唐骏的概率有多大?的确,人人都成为唐骏的确不现实,但是经过努力,月薪达到8K、1W的总是大有人在吧?虽然不能达到大富大贵,但也不至于被女朋友看不起,付不起房贷首付款吧?

    很多人都喜欢抱怨,觉得这个世道不好。但现实是,在同样世道不好的情况下,为什么有的人成功,而你却碌碌无为?差距在哪里?怪世道不好吗?还是怪自己没本 事?我说这话可能你不爱听。但是一个无法辩驳的事实是:你要是有本事,为什么月薪只有2、3K或者3、4K?事实胜于雄辩。所以,如果看到这里还想抱怨的 人,那么,也请你趁早离开。抱怨永远解决不了问题。

    职场是一个复杂的综合体。看到别人在职场上呼风唤雨,你认为很惬意,是么?但是他们风光表面的背后,又有几个有看到他们曾经付出的巨大艰辛?这个社会其实 是很公平的。努力不一定有回报,但是如果不努力,就一定没有回报。要怪,就怪自己投错胎,怪自己的老子没本事,当初没有给你留下一大笔可以挥霍的资本!

   说归说,对于那些想改变自己的朋友们来说,还是需要看清楚一些东西,有一些经验也想和大家分享分享。同样是职场人士,我也有我的经验和感受。在打工的3年 里,我得到了7次加薪(同时进入公司的员工,加薪不超过2次的员工大有人在),顺利地从员工做到了总监,是公司所有员工中成长最快的。我敢肯定,在看过这 篇文章的人当中,肯定有人比我更优秀。但是对于那些更渴望得到帮助的朋友们来说,我还是希望把自己的经验写出来,与大家分享。

我自己写了一篇文章,叫《决定前程的8件事,你做到了几件?》在这里整理出来,希望能对大家有所帮助。

一、一定要清楚自己未来的目标是什么
很多人把职场想得太美好,其实不然。如果你没有规划好,你就会难免遇到各种各样的问题:工作不开心;没有前进的动力;工作不是自己想像的那么好;自己的才能无法发挥;看到以前的同学待遇如何如何,便受不了刺激,急切地想跳槽;当初为了生存而找的工作,根本就不适合自己……
这是几乎所有初入职场的朋友都会面临的问题。而这些问题通常会在步入职场的1-3年之内最明显(3年之后之所以不明显,是因为你已经被现实折磨得 太久了,已经被种种不平现象同化了,因此也就习惯了。你曾经的种种抱负被现实碾得粉碎,于是,你也从一个志向远大的年轻人一下子变成了一个碌碌无为、甘于 平庸、成天为了生计而奔走的普通打工者)。

   如果不及早解决这些问题,那么,你就会荒废这3年的时间(有的人可能会更长),而对于一个职场新人来说,这3年至关重要,是锻炼能力、积累资本的黄金3 年!一旦错过,则要花费更多的时间,从头再来,重新弥补!更有甚者,可能一辈子都无法弥补!这绝对不是危言耸听!因此,如果你的职场年龄还没有超过3年, 恭喜你,还有改变命运的机会。而一旦超过了3年,那么,你的每一次改变,都将付出巨大的代价!

   为什么要清楚自己的目标?因为,有了目标,才有行动的指南。知道自己想干什么,喜欢干什么,这才是你前进的最终动力。工作不开心、动力不足、盲目跳槽的最 根本原因是职业目标不清晰。没有目标,便没有了追求,于是,所有的行动只是为了挣一口饭吃。你根本没有考虑过自己的未来应该端什么饭碗。
或许你在30岁之前还有挥霍的资本,因为年轻嘛,做什么都不怕。连广告上都说了,“30岁之前,有什么好怕的?!”而一旦过了30岁,你走的每 一步都必须要慎之又慎,因为:你要结婚、你要养活老婆孩子、你要供房贷、你要供养年迈的父母、孩子大了还要上学、父母年迈了需要照顾……等等等等,所有的 这些责任,都要你来承担。如果没有规划,一旦出现问题,你只能自乱阵脚。

   人生的职业发展如同品牌塑造一样,只不过你的产品就是你自己。你自己的发展目标,也就是你人生的品牌目标。有了目标,就要考虑该怎么走。每走一步,都应该 离目标更近,而不是更远。所以,你每做一个决定的时候,要衡量这个决定对不对,唯一的标准就是:它是不是能够帮助你离目标更近?如果不是,那么,赶紧住 手,因为,你走的路偏离了你的目标!再走下去,只能错得更离谱!

   对于人生目标,涉及到职业生涯规划的问题。这是一个老话题,很多人以为自己很了解了,其实却远不是那么回事。大家可以看一些相关书籍,但在中国,此类书籍 的最大问题就是说教性比较强,实用性非常差!很多人看了书之后依然一头雾水,不知所措,看了之后反而更糊涂。我的意见是,最好还是找一些专门的机构咨询一 下。
注意:是咨询,不是测评。二者的区别在于,咨询的意义在于“为客户提供可应用性的解决方案”,而测评则仅仅局限于“帮助你认识自己”,至于怎么 做,怎样行动才能更接近自己的目标,不知道!因为测评的人都是专家,而国内的专家都是做研究的,没有实战经验,甚至对职场升迁是怎么回事都不太清楚,怎么 可能指导你做实战规划?建议大家去做一下职业生涯规划。如果现在不解决,恐怕未来3年你都会白白浪费,更有可能因此而毁了你的一生!
记住:有了规划,不一定能够成功;但没有规划,一定不会成功!

二、能力固然重要,但并不能代表全部

  这里所说的能力,是指专业技能。步入职场你会发现,能力其实并没有你想像的那么重要,它并不是是步步高升的全部资本。你会发现一个能力不太强的人做了你的 上司,只因为他在这个公司干了10年——这说明“资历”是你高升的本钱(这种现象,在国有企业和政府机构里特别明显,因此,在国企工作的朋友和公务员同志 要注意了);有时候你会发现能力并不怎么强,但是与老板关系非常好的人通常能够得到提拔——这说明“关系”也是本钱。在我原先工作的公司,有两个特别明显 的例子。

    一 个有着丰富工作经验的男士,跳槽来到公司,能力也特别强,但就是与同事处理不好关系,自认为自己非常牛,喜欢主动当别人的“导师”,动不动就对别人的工作 指手画脚,顶头上司非常讨厌他;而同时进入公司的另外一位女士,能力不是特别强,但是非常踏实、勤奋、与其他同事相处得也很好,能够顾全大局。最后试用期 结束时,那位女士得到了公司的认可,而那位男士则收到了公司的辞退通知。

   在职场上,一定要对职场有清醒的认识,不要生活在梦幻当中,不要太理想化,不要标新立异,不要恃才傲物,不要认为有能力就可以走遍天下。专业技能固然重 要,但是职场发展看的是一个人的综合素质。综合素质高的人,才是职场发展的“潜力股”。这些综合素质,包括沟通能力、人际关系能力、团队合作能力、管理能 力、工作态度及敬业精神等各种“软实力”。

    对于有些朋友而言,可能会对这些“软实力”不屑一顾。很多人会说,如果老板喜欢爱拍马屁的人,难道我就要委屈自己,学着去拍马屁?很不幸,我会告诉你,答 案是肯定的,你一定要学会拍马屁,否则吃亏的是自己。但要声明的是,我不是教你诈。中国有句成语,叫外圆内方,用在人际交往上,就是说你与人相处要学会妥 善处理各种关系,但不可因此而失去了内心的准则,否则就变质了。尤其在中国这种注重人情的社会,这种人际交往的能力一定要好好练练。
如果有时间,看一下《厚黑学》,了解一下社会现实,切忌不可因此而迷失了自己。

三、要手足够的“亮剑”资本

    有的大学生经常会跟我说,我毕业之后一定要找到一份月薪多少多少的工作,争取做到什么什么职位。这时候我总是会耐心听完他们的“远大蓝图”,然后问一句:“你凭什么达到你的目标?你的资本是什么?”然后他就会哑口无言。

    我相信读过这篇文章的人也会和这位大学生一样,有着自己的伟大抱负,但是大学四年下来,你有没有想到,要实现这些目标,你的资本是什么?对于很多已经身在职场的朋友而言,你晋升的资本又是什么?

   人生在发展过程中,很多时候都需要毫不犹豫地向别人展示自己的实力,要敢于展示,善于展示,这就是“亮剑”。因为这年头,酒香也怕巷子深,是金子未必会发 光。相反,发光的倒是那些碎玻璃、烂瓶子。中国什么都缺,就是不缺人。茫茫人海,如果你一直都谦虚地默默无闻,那么,你就大错特错了。

   既然具备了“亮剑”的意识,那么,下一步你就要考虑到亮什么剑:我到底拿什么资本给人家看?对于职场上的朋友而言,你“亮剑”的资本又在哪里?你的业绩提 升了吗?你的能力提升了吗?你在一年内看过多少本对自己的职业有益的书籍?你参加过几次培训班来为自己充电?如果没有,你又凭什么让老板为你加工资?靠抱 怨?你肯定会提前被职场淘汰出局!


四、慎重对待第一份工作

这一观点,对于大学生来说,更有意义。
现在整个社会、媒体、专家等等各种单位都一直在鼓吹“先就业,再择业”。这种论调不是今年就有,而是多好多年前就出现了,并且屡屡出现,不绝于耳。相信当年我们大学毕业时候,也会有很多人相信了这一点吧?管它呢,骑驴找马,先找份工作挣钱填饱肚子再说!

但是根据本人自身的经验及职场发展的现实情况来看,本人绝对不赞同这种说法。相信现在在职场上发展不顺的朋友,多半也和第一份工作有关系吧?俗话说,“男怕入错行,女怕嫁错郎。”第一步错了,以后就会经常犯错。正所谓一步错,步步错。

为什么第一分工作这么重要呢?原因有三:

1、先入为主的观念影响。
具体是指,先听进去的话或先获得的印象往往在头脑中占有主导地位,以后再遇到不同的意见时,就不容易接受。举个最简单的例子:在你的头脑印象中, 诺基亚已经是手机的代名词。如果有一天诺基亚生产出了一种“诺基亚牌电脑”,你的心里是什么感觉?非常不对劲对不对?这主是先入为主现象。

我原先有一个同事,曾经在海尔工作过,她用的是海尔的手机,功能也非常不错,但她总是说要换一部手机,我问她原因,她说,兜里装着海尔的手机,总 感觉像装了一个大冰箱,非常不舒服。为什么?先入为主呗!不要小看这一现象,其实对人的潜意识影响非常大。海尔的手机和电脑等IT产品卖得不好,相当一部 分是因为先入为主:大家普遍认为海尔是家电的代名词,而不是IT的代名词。

对于求职的大学生来说,这一观念同样会影响你以后的发展。你的第一份工作会对你以后的工作产生影响,你跳槽时,你的新雇主也会通过你的第一份工作 经验来判断你是否能够胜任这份工作。曾经有一个大学生,毕业之后想做策划,就找了一家广告公司。刚进公司时,因为文笔不错,被安排到了文案的位子上。而与 他同时进去的另外一个人,恰恰因为文笔不好而被安排到了策划的位子上。后来她屡次想转行做策划,但都是因为前一份工作经验的影响,而始终没有得到转行的机 会。

2、职场中不允许从头再来。

如果公司招聘的是有几年工作经验的老员工,一定要求是“相关经验”!这一点至关重要!因为这样的员工一般不需要培训,可以直接上岗,会很快为公司 带来最大的效益。如果是工作几年以后再打算转行的应聘人员,一般不会受到重视,一是不会给公司直接带来效益,二是培训起来也比较困难,思维已经固化。与其 这样,倒不如招一名应届生,白纸一张,可塑性强,发展起来潜力更大。

所以,一旦有了工作经验之后,再想转行从头再来,难度相当大。除非你认识公司的高层领导,可以得到一个机会,否则,很难。

3、时间成本不允许。

步入职场的前三年,是一个人职业成长的最重要、最关键的时期。如果你这时候还把工作的重点放在骑驴找马式的转行上,则会浪费你最宝贵的青春,你的成长也因此比其他人慢一步,而很多晋升的机会将因此而失去。
所以,对待第一份工作,一定要慎重。找工作就像结婚,情愿不结,绝不能乱结。
如果现在你刚刚步入职场还不到3年,劝你趁早做一个职业规划,亡羊补牢,尤未为晚。一旦你结婚了买房子了,你再想弥补都已经晚了!

五、要保持一种“空杯心态”

给大家讲一个故事。古时候有一个佛学造诣很深的人,听说某个寺庙里有位德高望重的老禅师,便去拜访。老禅师的徒弟接待他时,他态度傲慢,心想:我 是佛学造诣很深的人,你算老几?后来老禅师又十分恭敬地接待了他,并为他沏茶。可在倒水时,明明杯子已经满了,老禅师还不停地倒。他不解地问:“大师,为 什么杯子已经满了,还要往里倒?”大师说:“是啊,既然已满了,干嘛还要倒呢?”

禅师的意思是,既然你已经很有学问了,干嘛还要到我这里求教?这就是“空杯心态”的故事哲理。它最直接的含义就是一个装满水的杯子很难接纳新东 西,要将心里的“杯子”倒空,将自己所重视、在乎的很多东西以及曾经辉煌的过去从心态上彻底了结清空,只有将心倒空了,才会有外在的松手,才能拥有更大的 成功。这是每一个想在职场发展的人所必须拥有的最重要的心态。它告诉我们一个道理:做事的前提是先要有好心态。如果想学到更多的学问,先要把自己想象成 “一个空着的杯子”,而不是骄傲自满。

我见过很多的大学毕业生,刚进入公司时常常处处吹牛,说自己在学校如何如何,本来可以找到更好的工作,迫不得已才来到了这里等等之类的话,好像这 家公司委屈了自己。在这里提醒一下那些即将步入职场的大学生:这种心态千万要不得!不要认为自己很牛。还是那句你不爱听的话:中国什么都缺,就是不缺人! 话又说回来,你要是这么牛,为什么不像比尔?盖茨、戴尔、乔布斯那样,大学没毕业就退学去创办一家世界级的大企业?火车不是推的,牛皮不是吹的。
你要是有本事,就用事实证明给人家看,而不是成天抱怨!

对于身在职场的朋友而言,这一心态同样重要。中国有一个词,叫“虚怀若谷”。我们都知道,优秀的人有极高的素养,甚至是虚怀若谷,他们都有一个能 包容一切的胸怀,有了这样的胸怀,你在职场上就会获得别人的尊重,就会获得更多的发展机会。类似的词还有“大智若愚”“大巧若拙”等等,不多说,自己去体 会。

六、要懂一点做人的常识
职场就像一个大熔炉。在职场中,不仅仅是要挣一碗饭吃,更重要的是学会做人的道理。如果连最起码的道理都不懂,你不仅得不到别人的尊重,更会失去更多的发展机会。因为,在中国,人际关系也是生产力。中国有句古话:得道多助,失道寡助。

我见过很多人,虽然已经工作多年,但对于做人,却连一点最基本的常识都不懂。做人的道理万万千,但其中最重要的,莫过于以下三条:

1、严于律己,宽以待人。
职场不同于生活。虽然职场上同事之间的相互关系表面上会比较好,但你总会感觉到缺点儿什么。非常明显的一点,就是大家都在相互利用,人与人之间难免会因为利益关系而闹得不愉快。这时候,你若是锱铢必较,势必引起同事之间的不愉快。
在这种情况下,为避免纠纷,同时也为了赢得他人的尊重,你要学会大度一些,容忍一些。出现问题时,首先想想是不是自己出了问题,而不是一出现问题就去找别人的责任(长此以往,你的心态就会变得非常不平衡,因此也难以容人了)。
严于律己,宽以待人,是十分必要的。长期下去,你会积累很多的人脉,会得到大家的尊重;而你需要帮助时,大家也乐意伸手。
2、学会倾听。
无论什么时候,倾听都显示出一个人的职业素养。与别人交谈时,一定要记住等对方说完话时再发表意见,切不可中途插话或者打断他人。通过这种方式,大家都乐意和你交往,同样也会有助于树立你个人在大家心目中的形象。
3、诚实守信。
职业中固然处处充满了相互利用、利益至上的现象,在这种情况下,诚实守信仍然不失为一种传统美德。诚信同样可以带来效益。只要你诚实守信,长此以 往,大家都会对你形成一种良好的印象,都愿意和你交往。而那种两面三刀、当面一套背后一套的人,固然可以占一点小便宜,但要想成就大事业,诚实守信的基本 原则绝对不能丢。
七、要学会遵守游戏规则
我为什么在文章一开头就提醒“愤青”或者“类愤青”们不要看这篇文章?
因为他们多半是放荡不羁、不会遵守游戏规则的主儿!很多人都会感觉到,在职场上发展,不仅会受到各种约束,而且处处都充满了不公平现象。比如上班 迟到老板会扣你工资,但你加班的时候却从来没有拿过加班工资。这是最常见的一种现象,其他不公平的现象也比比皆是,这里就不多就了,大家都有体会。
在这个世界上,不要奢求公平。那只是一种乌托邦式的理想,从来都不存在于现实社会中。
员工和老板之间的关系,就好像是一场游戏。是游戏就会有游戏规划,否则,游戏就玩不下去。但是,游戏规则是谁制定的呢?当然是老板,各种利益也偏向老板!身在职场的你,一开始看不惯这种现象,是很正常的,因为你初涉职场,本质上还是比较纯洁的。
但你一定要学会慢慢接受这种游戏规则。不要试图改变这种规则,因为在老板面前,你没有太多的话语权。说得再难听些,你只是一个打工的,混口饭吃,给你吃就不错了,还嫌饭凉?如果不想做,可以离开。还是那句话:中国什么都缺,就是不缺人。
记住这句话:“如果你不是游戏规则的制定者,你的选择只有两条:要么屈从,要么离开!”
八、机会只垂青有准备的人
无论你再怎么抱怨,再怎么不开心,饭还是要吃的,觉还是要睡的,工作还是要做的,未来的事情永远只属于自己的。买房子也好,娶老婆也罢,压力只有 自己扛,老板不会为你操任何心。与其有时间去抱怨,但不如踏踏实实静下心来,好好提升自己的基本功,用事实证明自己的本事,让别人对你刮目相看,万不可因 为自己的书生意气而自做一个自毁前程的“愤青”。
当然,你的准备是多方面的,除了专业技能外,其他的辅助技能也是非常必要的,比如沟通能力、人际关系处理能力、管理能力等等。当然,更重要的是 要为自己的未来做一个规划,清楚地知道自己的目标是什么,应该怎么努力才能实现。适当的时候也要充充电,不要舍不得那半个月的工资,这也算是为自己的未来 进行投资,有什么舍不得的呢?如果你现在不学会“舍”,以后将永远也“得”不到。
有时候,你之所以发展得不好,不是因为没有机遇,而是因为你没有准备好,导致机遇与你擦肩而过。这个社会就是这样,再怎么不合理,再怎么不公 平,但是发展机遇是时时都会面临的,只看你有没有准备好。你要是真的练就了一身令人刮目相看的真本事,说不定明天就有人请你做某世界500强的总裁也不一 定呢。
以上只是本人做HR多年的经验积累,希望对大家有所帮助。作为过来人,我真诚地希望在职的朋友们及即将就业的大学生们也能够以一种“空杯心态” 看待这篇文章。有时候,过来人的经验是非常有价值的,那是他们用时间和金钱换来的血汗教训。有的人偏偏不信这一套,认为只有自己亲自体会过,才能知道是什 么滋味,别人的经验只是别人的,和自己无关。如果你这样想,那我也没有办法。我也要有一种宽容的心态,冷静看待那些“不见棺材不掉泪,不撞南墙不回头”的 “人才”,不是吗?参加一下培训,适当充一下电,为未来做更好、更完善的准备,才是积极的人生态度。记住:抱怨永远解决不了问题!)

posted @ 2010-04-16 12:24 kangxm 阅读(441) | 评论 (0)编辑 收藏

2010年3月14日 #

       假设我们现在有user和org两张表:
1、user用户表 字段包含:id、name、orgId 其中orgId标示该用户所属的组织
2、org组织表   字段包含:id、name
两表之间的关系很简单,一个组织下会拥有多个用户,一个用户属于某个组织。

         在解析之前先普及一下数据库空值(null)的概念:
有很多时候我们都能碰到某表中某字段值为空的情况,空值不等同于字符串中的空格、空串
也不等同于数字类型的0,所以,一般我们用IS NULL 关键字来检索有空值字段的记录。而不是用!=、<>这些判断符。

        接下来,我们给示例库表中做上一些测试数据,如下图:
                             

        有了这些数据,咱们就可以进入正题啦:
一、左连接、右连接
        A Left join(左连接)优先解出左表中所有的记录,包含右表中没有匹配到得记录。
        A Right join(右连接)优先解出右表中所有的记录,包含左表中没有匹配到得记录。

左右连接是相互对应的,所以在这里一并解释。
罗嗦一句如何区分左表和右表:
        在JOIN的左边出现的表叫左表,在JOIN的右边出现的表叫右表
具体体现在SQL语句上即:(以左连接为例)
        左连接语句:SELECT user.name,org.name FROM user LEFT JOIN org ON  user.orgId = org.id
        右链接语句:SELECT user.name,org.name FROM user RIGHT JOIN org ON  user.orgId = org.id
显而易见,该SQL中,user为左表、org为右表
下面我们来看看这两个语句分别执行后的效果:
                                   
        为了更好的看出左右连接的效果,我们再来看看内连接查询出来的效果
        内连接:SELECT user.name,org.name FROM user JOIN org ON  user.orgId = org.id
内连接语句执行后的效果:
                                                    
        很明显:
内连接与左连接相比,检索结果集中漏掉了user表的user3数据
内连接与右连接相比,检索结果集中漏掉了org表的org4数据

posted @ 2010-03-14 18:25 kangxm 阅读(600) | 评论 (0)编辑 收藏

2010年2月24日 #

       
        进入10年了,先回顾一下吧:

        08年注定是变化的一年,该死的金融危机上来就搞倒了我待了3年多的公司,到现在还灰常的怀念以前公司的工作氛围和那些一起奋斗的日子。那时候做项目,真的是把项目当自己的孩子来养,很有感情;怀念ing.

        09年注定是压抑的一年,生活压抑,工作压抑,很多压抑。。。压抑到实在不想纠缠。

        10年注定是拼搏的一年,勾画了美丽的图,也承诺了很多事,必须做了。

        10年的那些事在这里留个记录吧,年终的时候再来看;

        1、ZZ的那个网站,我已经答应下来了,不管多难也要搞出来;
        2、WX的那些活,希望我能做的比去年更好,也希望他那边能再多接一些新活;
        3、公司的那摊事,走一步看一步吧,毕竟09年失望太多,希望能找到合适的契机和方向;
        4、考驾照、买车,今年必须实现了,要不5年计划没法划上句号了;


        
posted @ 2010-02-24 10:15 kangxm 阅读(401) | 评论 (2)编辑 收藏

2009年10月28日 #

        作者:于良,辽宁大连人。1997年大学毕业参加工作,十年来一直从事快速消费品领域的销售工作,从基层的销售代表做起直到营销总监。十年间一路走来饱偿心酸,同时也收获无尽的喜悦。回忆过去总是那么心情澎湃,当这一刻成为历史的时候,我必需铭记在我成长的道路上为我提供帮助的每一位朋友。

  销售工作独特的竞争机制,练就了从业的销售人,超群的心里素质和超强的执行力。本文所提到的销售方法有些另辟蹊径甚至另类,但我确定它很有效。

第一节:机遇

  面对同样的机遇,不同的人有不同的表现和结局,区别在于能否抓住机遇。而能否抓住机遇,关键在于自身的积累、准备、能力和勇气。只有努力提高自身素质,苦练“内功”,才能在机遇到来时“发现”机遇,抓住机遇。

  2001年9月我结束了22个月在雀巢(中国)有限公司雀巢矿泉水大连市场销售主管的工作后,跟随原雀巢矿泉水的销售团队来到了从未了解过的美国好时巧克力公司,由于此前在雀巢公司管理大连市场工作业绩突出,而且又是坚定追随这个销售团队离开雀巢公司的所谓“嫡系”,因此到了新公司后我从一名销售主管破格提拔成主管辽宁省销售工作的大区销售经理,连升三级。通常外企职位等级:(1)销售代表、(2)销售主管、(3)城市销售经理、(4)地区销售经理、(5)大区销售经理。那年我只有27岁,直接上级汇报人也从原上级变成了原上级的上级――全国销售总监。

  我从来没有预感过但是机遇来的的确很突然,从那一天起,我在这里渡过了2年的时光,也经历了人生中最重要的一个阶段。在以后的岁月里,有关这个时期的工作情景曾无数次在我的记忆里,让我魂牵梦绕。

第二节:上任伊始

  不要告诉我未来有多么美好,我只想知道如何穿越眼前的沙漠。

  为什么公司会选择我?除了在雀巢公司的“嫡系”原因,就是我对巧克力这个行业,对当时辽宁市场销售的困难程度一无所知。所谓无知者无畏。这个任务的达成将决定我在这个职位上走多远持多久。尤其是外企销售工作独特的竞争机制,决定了公司不会给我太多时间,不会了解我完成任务的过程有多么艰难,不会听我的解释和“借口”。结果,上司只要结果。

  10月6日就职,离12月30日的年度区域销售目标的达成日不到3个月,销售任务额380万,只有顺利完成任务我才有可能转正成为大区销售经理,完不成任务就只有“走人”。我叹息了辽宁区全年销售任务700万,1至9月分才完成320万,要在剩下3个月完成380万难度可想而知。如果说大连市场180万任务,我还有些“天时地利人和”的话(本文介绍过我是大连人),沈阳200万的任务就头痛了。不尽感叹:我把前任区域经理给“竞争”下去了,谁又是我的下一个呢?实际上这个销售额只是任务的一个量化和表象。这个任务的核心就是在极其恶劣的条件下,甚至是不可能的条件下,如何利用最少的资源去创造最大的效益。我是宁愿被打倒,也不能被吓倒的人,我需要拿出“亮剑“精神。

  每一个做销售、做渠道的从业者都有过这样的希望:

  1. 公司或产品具有非常高的知名度;

  2. 产品的价格具有竞争力,产品本身具有很强的销售力;

  3. 充足的供货及快捷的物流保障;

  4. 准确的广告投入,行之有效的促销手段;

  5. 成熟的销售网络和渠道管理体系;

  6. 行业竞争不够激烈,市场发展空间很大………

  可是并不是所有产品天生就具有这些,特别是刚刚上市不久和没有品牌力的产品。简单来说当时好时巧克力所面临的沈阳市场状况和我面对的问题如下:

  1. 在产品开发市场前期没有品牌知名度,不容易让经销商消费者相信和认可你的产品,甚至不相信你所在的公司;

  2. 好时产品因为100%进口,非国内生产,所以也没有价格上的优势;

  3. 覆盖率不够,销售也不多,所以也没有广告的支持;

  4. 前任的工作“不利”,导致经销商放弃了继续合作,经销商库存产品到期、过保质期的产品十几万,商场条码缺失严重,产品面临超市下架,找不到愿意合作的经销商;

  5. 公司产品规格不全,生产日期已过三个月以上(进口产品通常就这样,但是生产日期过3个月以上商场有权拒绝收货);

  6. 因为刚到公司不久即走马上任,并且立刻投入工作,在沈阳没有固定住处,只能住酒店,公司报销费用缓慢,本人积蓄不多面临“弹尽粮绝”;

  7. 没有区域管理经验,没有开发经销商的经验,对沈阳市场、超市、渠道非常陌生;

  机遇永远与挑战并存,是不是在还没开始的时候就放弃?因为这样我至少可以在好时公司找到一份主管级职位“养家户口”。的确我在最初什么都不具备,靠什么?其实在很大情况下,在什么都没有的时候,我们往往忽略了一点,我至少还拥有我的人这才是最宝贵的。与我同时存在的还有我的精神,当经销商认可了你的人,他就会在一定程度上认可你的产品,他会认为与你这样的人合作比产品合作更有前景,这在渠道的开发前期非常重要。我坚信。

第三节: 目标就在前方

  目标往往不是一开始就有的,而是在不断的潜行中寻找到的。

  好在大连市场由于较熟悉而且好时产品在此市场销售渠道较完善,三个月(10、11、12月)180万的任务合同在与经销商软硬兼势,连哄带骗,不签180万就坚决取消经销权的狗急跳墙式招术下签订了,但是也花掉了我两周的时间,之后在我下一级城市经理的逐月的“强迫”下完成了180任务,这里就不再详述了。沈阳200万任务还一点希望都没有,此时已是10月21日了,之前沈阳当地城市经理以苦苦寻觅经销商两周了没有任何收获。于是我把工作重心全部移到沈阳,我现在唯一要做的就是在沈阳市场铺货、铺货、再铺货,其他的不重要。因为你的产品市场上没有,消费者买不到,再好的产品也无计可施。我没有“鸡”,又想马上吃到“蛋”,我必须“抓到”会下蛋(渠道)的鸡(经销商),找到愿意代理好时巧克力产品的沈阳新的经销商,而开发经销商的关键是要清楚地知道我们的优势在哪里? 劣势在哪里?对于不利的劣势一定要深埋心底,不可显露,甚至要暂时忘记,如不然会打击你的信心,影响你的心态。只要知道这一点,我就已经有了方向,这将引领我走向胜利。

  思路决定出路:

  1、目标分析

  劣势:鉴于好时巧克力还属于开发市场前期没有品牌知名度,不容易让经销商、消费者相信和认可你的产品,甚至不相信你所在的公司;

  解决:寻找德芙巧克力、吉百利巧克力、金帝巧克力的经销商,因为好时巧克力虽然在沈阳市场知名度不高,但是熟悉巧克力行业的经销商一定会了解到好时巧克力是美国第一品牌的巧克力,好时公司也是一个具有一百年历史的著名巧克力生产企业。

  劣势:好时产品因为100%进口,非国内生产,所以价格高也没有价格上的优势,只能在大型买场和超市销售;

  解决:寻找具有大型买场和超市渠道的经销商。

  劣势:覆盖率不够,销售也不多,所以也没有广告的支持;

  解决:在没有广告宣传的情况下,消费者了解你产品的最佳机会就是超市卖场的堆头和终端陈列及生动化的产品展示。需要执行力强,终端管理能力强并且具有一定的市场营销意识的经销商。

  劣势:前任的工作“不利”,导致前经销商放弃了继续合作,商场条码缺失严重,产品面临超市下架。公司仓库产品品种规格不全,生产日期已过三个月以上(生产日过3个月以上商场有权拒绝收货);

  解决:需要在超市客请关系相当好的经销商才能搞定。

  劣势:要在3个月完成200万销售额,这是必须的。

  解决:寻找至少有200万资金的经销商。

  2、目标设定

人脉就是财富,通过朋友介绍某超市采购提供的了他们掌握的经销商资料,沈阳市所有经销食品类经销商的联系方式、负责人及代理品牌、公司规模等的基本情况就摆在面前,在根据以上目标的分析搜寻符合要求的经销商,成功的希望就在眼前,好像困难没那么大。

  3、寻找目标

  通过电话将我们的信息和商业机会传递到每一个目标经销商,然后约见面谈,就合作进行谈判,签订合同,达成合同。路就在前方,似乎水到渠成,200万的目标在向我召唤。  

第四节:虎山之行

  只有蚂蚁上树式的一步一个脚印,才会有直升飞机式的平步青云。

  10月21日这是个深秋的日子,也是个星期天,我开始“亮剑”了,三个月200万的任务,我“上路”了。秋天的沈阳格外凉,花瓣离开花朵的季节,枯黄的落叶有些悲壮,似乎在提醒我此行充满无尽的坎坷。我按公司的出差标准找了家四星级酒店住下,临睡前我特意又看看已经整理好的目标经销商的资料,有十几个符合条件,我相信总有一个能行。那一夜我充满了希望睡的好香,这竟是在以后很长很长的时间里我睡的最香的一夜。

  10月22日我很早起来,把酒店的房间当成临时办公室,今天我计划为拉网阶段,就是把好时巧克力要在沈阳开发市场,找经销商的信息传递给目标经销商,谈话内容很简单就是简约的说明我是什么人,想要做什么,关键是提供了我公司的网址,供经销商查询我司的情况和产品。从听到对方“喂”的一声开始,我就进入全面的紧张状态,在前几句话就判断对方的情况非常重要。我的心几乎一天都在波动,从热情到冷遇、从希望到失望、从兴奋到低落,我无法控制我的情绪,好像自已掌握在对方手中。我最直接的收获就是更加明确了几个目标经销商,至少这几个还有再打电话的机会,其它的电话打过去大多都吃了“闭门羹”,由于好时巧克力前期上市销售并不成功,而且遗留诸多市场问题,知情的经销商大多都不愿意“搭理”这样的产品。我决定明天去市场超市看看好时产品的实情,做到知已知彼。

  10月23日

  我选了沈阳最大的几家超市探勘好时产品的情况,超市里德芙巧克力摆放着超大的堆头陈列,其促销品琳琅满目。吉百利产品端架陈列位置突出,而且又多了许新品。金帝巧克力的促销员在努力地宣传金帝产品,面对顾客大有不买金帝巧克力就绝不善罢甘休的劲头。再看看好时产品,陈列位置极差,我好不容易才“发现”,已被竞争对手“打击”的只有在一个不起眼儿的角落摆放,区区几个单品,离保质期还有2个月。刹那间脑子有些空白,感觉好像在前面冲锋陷阵的我,当我拿起枪拼命冲到前线的时候,才发现我的枪里没有子弹,或者说当我拿着枪冲到敌人面前的时候,你面对的却是敌人的大炮。

  10月24日

  我再一次联系了前天打电话有些意向的经销商,相信他们通过两天的了解和考虑会给我一次面谈的机会,我分析的不错,三个经销商都是对好时巧克力在美国的背景有些了解(好时巧克力是美国第一品牌的巧克力,也是北美销量第一的巧克力产品),愿意面谈。我约一个经销商下午在他公司谈,明天和后天各约定一个经销商,尽管时间很急迫,但是我还是担心欲速则不达。

  这个经销商是一个沈阳很有名气的经销商,代理了包括德芙巧克力在内的诸多大品牌,见面后没有那么多的寒暄,王总一看我是个年轻人,开门见山,单刀直入:“好时是个国际品牌,是个大品牌,此前沈阳市场运作不理想,那是没给我搞,否则现在的销售状况就不会是这样了,看看你们能给我什么支持,我可以考虑代理”。他的语气是那么的盛气凌人,甚至有些傲慢,的确他是沈阳的“地头蛇”,但是我还是有着出生牛犊不怕虎的勇气,针锋相对:“支持当然有,要多少有多少,要多大有多大,我们有这个实力,但是要看你能为好时产品做些什么,到年底能完成多少销量”。“说来听听你们的支持有多少,市场广告投入多少”王总有些不耐烦了。“投入和销量是成正比的,你预估一下到12月底能完成多少销量”,我没有正面回答他的问题。因为我们没有任何广告支持,没有赊货及任何铺底支持,仅有的7%的进场费用和超市促销费也被我的前任区域经理花光了。王总没有再逼问下去,短暂的思考后他的回答很肯定:“四五十万吧,最多六十万”。我仍然没有正面回应,而是阐述准备了一边又一边的好时产品在中国的发展蓝图,描绘了好时产品在沈阳的市场的前景,分析了好时产品的利润盈利模式。王总听得频频点头,我看时机差不多了,抛出了我的要求到12月底至少完成200万任务。王总诡异的笑了:“小伙子,你疯了,这怎么可能,你们有多少铺底(赊货)”。“没有,一分没有,我们没有”。我有些羞涩的回答。“好吧,我还有事情,再见小伙子”。他有些失望的甚至不礼貌的离开了,我没有再解释什么,我很清楚我的任务和目标。

  10月25日

  按约定的时间我来到她的公司,一个中年女人接待了我,她是这个商贸公司的老板,很有些气质和素养。双方各自介绍后,她很客气的说在美国的妹妹非常喜爱吃这个品牌的巧克力并经常从美国带给她,她认为好时的品质很好,她很爱吃。她还主动的介绍了她公司的情况。我也不失时机的表达了我对贵司的好印象,也没有保留的赞美了她和她的公司,同时描绘了好时产品在中国及沈阳的市场的前景。我感受的到她很希望代理这个品牌,我也了解和相信这个经销商的渠道、管理、理念、资金都是相当不错的经销商。我鼓足勇气提出了我的要求:到12月底至少完成200万任务的合作前提。她皱了皱眉,疑惑之极:“如果达不成呢?”。“达不成就只能做朋友了”,我含蓄的表达着我的拒绝并勉强地笑笑。“我需要考虑,并且还要与财务经理沟通看看我们的资金情况”,她表情凝重的说。

  10月26日

  这是个很有些背景的集团公司,代理品牌的商贸公司是集团旗下的一个子公司,从企业的介绍手册看其在连锁超市、物流、房地产、投资、代理品牌销售等领域发展。刘总看来是个东北人,豪爽直接的他是商贸公司的总经理,态度相当积极,通过与之沟通了解到其公司因为刚刚成立不到一年,没有什么太好的代理品牌,有些品牌虽然是知名产品但是留给经销商的利润空间太小,都成了“搬运工”了。“有集团做后盾,我们的资金没有问题”刘总自信的说。“而且集团的子公司本身就经营连锁超市,因此我们有十足的运营超市渠道的销售经验”他接着介绍说。我心里暗暗高兴,的确从综合实力和代理好时产品的动机来看,这个经销商无疑是目前最合适的对象,对于好时巧克力在中国市场的未来,在沈阳市场的发展前景,市场推广的规划,我都以十分认真和专一的态度讲解和描绘着,我不希望因为小的差错和不足影响刘总的决策。由于对方能看的出来急于寻找好的品牌代理,我适时的改变了沟通策略,既然这个经销商宣称具有很强的资金实力,我何不采用激将法,让对方接受200万的销售任务呢?于是我提起精神并带有些骄傲的语气说:“到12月底至少完成200万任务的目标对刘总来说资金没有什么问题吧”。“这当然,没有什么问题”刘总哈哈大笑似乎他看得出来我的担心。“不过你需要给我提供一份200万的好时巧克力的销售计划,我不希望到时候卖不动占压我的资金甚至赔钱”。我当然是有备而来,做计划是外企销售经理的必修课,每一个人都会把计划书项目书之类的做到大气磅礴,气势汹涌。甚至带有极强的欺骗性,而你却无法看透,但是我确定可执行性落地性一般较差。一天下来,我单枪批马与刘总的“智囊团”关于销售计划的诸多细节,经销合同的诸多条款一一给予分析解答。夜幕降临的时候我已用完浑身吃奶的劲儿了,刘总非常激动的握着我的手说:“于经理,这份合同我会很快拿总公司批复,相信我们的合作会很快开始,也预祝我们的合作愉快”。尽管合同没有最后签订但是我相信这只是个时间和程序问题。我有理由宣布我即将成功了。

  10月27、28日

  今天后已是我正式入职好时公司的第20天,上司已是第3次打来焦急的电话询问经销商的开发情况了。我的回复还是那样的斩钉截铁和自信,“没问题,请放心”。

  俗话说的好“行万里路半九十”意思就是走了90%的路程实际只相当成功了一半,也告诉我们“编框编篓难在收口”。没到合同的正式签订并完成汇款,什么事情都可能会发生,越到最后越要小心谨慎。我在期盼中焦虑的等待了两天,两天好像过的格外漫长,像是过了两年。我仍然记得在那一天的晚上,梦见经销商刘总向我走来,。“于良,祝我们合作愉快吧”。他手上拿着签好的合同和汇票,我飞快的走过去,紧紧的拥抱他。“合作愉快,合作愉快”,我大声的甚至有些失控的说。这个梦好真实,还没来的急庆祝,天已经亮了。

  10月29日

  今天是个“宣判”的日子,外面下着小雨,天阴沉沉的。我拿起电话的时候似乎紧张的手都在发抖,拿起电话放下,又拿起又放下,反反复复。因为我希望是经销商先打过来电话并告诉我合同已签好马上汇款。打过去电话询问会很有些被动,我不希望让经销商感到我的焦急,这对最后达成目标很关键。我静静的等,手心里和额头都是汗,心跳的很快。房间的时钟秒表在不时的发出嘀哒嘀哒的声音,时间过的好快,下午4点了,但是……..一种不祥的预感充斥着我的心。我决心问问情况。从难到易,我打给了面谈的第一个经销商的手机,电话响了好久好久没有人接听,打到他公司说人不在。没关系对这个经销商我本来寄托的希望就不大。我鼓了鼓气,把电话打给了第二个面谈的经销商,问问她考虑的怎么样了,资金有把握了吗?对方很快就接了电话,语气还是那么礼貌:“我们经过认真的考虑,还是感觉时机不成熟,有机会再合作吧,有时间常来坐坐”。我有心里准备,绝地逢生,刘总那里不会再有问题的,我回忆着和这个经销商刘总谈判的每一个细节,过程几乎完美无缺,一切尽在掌握。电话打过去,电话响了,这是我最后的希望,任务的希望,此行的希望,继续工作的希望,职业前途的希望,是一切一切的希望。刘总的声音有些低沉:“对不起啊,小于,由于我们总公司的房地产项目占用了预算外资金,到年底不会再有太大的资金支持,我们也没有办法,现在我只能说声遗憾了,如果你们还能等几个月的话……..”后来刘总讲些什么我都听不太清楚了,我突然眼前发黑。

 

第五节:没有结果的努力等于零

  在很多时候,我们的努力并不是没有成功的可能,只是在没有达到最后一刻的时候你放弃了,再只要努力一点点就可以成功的时候,你放弃了。

  晚上我一个人在酒店的房间里反省,房间非常冷清,甚至外面的秋风顺着窗户缝都在敲打我的脸。我关掉了手机,只想一个人,静静的待着。我的时间越来越少,每过一天200万任务的达成可能性就越小,我想到了辞职,但是又打消了念头。出于个人的尊严,我绝不能就这样离开。现在糟糕的心情,就像人要面对病痛一样,可恨却又要面对。

  嗨,就这样我每天送走朝阳,迎来月光,行色匆匆,衣冠楚楚的过着艰难的日子,当然没有人知道我的焦虑,只有自己知道。我要坚持不住了,的确我的钱已不能支持我住四星级的公司的标准的酒店,我找了个招待所住下。我很少想甚至不去想其它许多事情,父母的身体怎么样,女朋友她好吗?我没了吃饭的食欲,不知道晚饭如何解决,街边的羊肉串都让我吃腻了,更没有什么娱乐生活。在这一阶段我变得极为单纯,这种单纯甚至时常陷入梦幻中,200万任务的达成的时刻无数次出现在我的梦里,让我在梦中快乐的惊醒,睁眼看看四周却是一片的寂静和黑暗,寂静的可以听到窗外的风和酒店其它房间客人的鼾声。我必须在11月份来临前签约并至少完成100万以上的打款,否则就来不及了。我要找到那个可以让我脱离苦海的经销商,找到可以激发我信心的人。没有结果的努力等于零,现在我一无所有。

第六节:柳暗花明

  尽力而为和全力以赴是两种不同的态度。

  10月30日

  想来想去,我觉得我真的不行。在开始的时候,我一直认为是我的运气不好,再就是任务难度太大也许没有人能达成。不过痛定思痛我决定我要最后一搏,我分析了所有细节,发现我签不下合同是我犯了一个错误,那就是太强调经销商的全面了,即要有渠道,还要管理好,理念好,还要有资金实力。因为这样才能保证200万的任务完成并且快速的销售出去产品,这样经销商才会降低风险,因为好时产品的保质期到货时已经3个月了,而这一切经销商浑然不知。我太为经销商考虑了,没有风险的生意会赚钱吗?我这样给经销商一种印象就是好时巧克力是没人代理的产品,是没有竞争的,是可以让他们用很长时间考虑的,是我非常渴望的,所以经销商没有兴趣,有兴趣的只是我,只有我才最急,所以我失败了。要赢得信任,就有先端正自己。再一点经销商有200万资金的能力吗?如果没有的话,你再努力也没用。确定自己对目标的分析,不能再犹豫徘徊,只要符合200万的资金标准其它方面的不足可以在合作中调整和弥补。如果经销商没有资金实力,我应该马上放弃,否则坚持到最后,只能是浪费时间。

  我必须重新调整心态,没有失败,只有暂时搁浅。重新找新的目标,而新的目标的前提就是必须有资金,而且最好对巧克力行业甚至食品行业全然不知不懂,如果是同行几乎没有人愿意投入这么大的资金。积极总比消极好,积极心态的树立,将使我们很快摆脱消极心里的阴影,成为一个强者。

  人生最难得就是在你最落魄的时候有人肯伸出关爱之手。

  10月31日

  刘总的电话又响了,他告诉我虽然他们公司由于资金问题没有取得合作的机会,但是他的一个朋友很有兴趣代理好时巧克力,有很强的资金实力,只是这个朋友是经销柯达交卷和相机的经销商,从来没有经销过食品,刘总问我可不可以考虑一下,见面谈一下。我已经别无选择。我冷静的考虑了好一会,与我分析的结果很契合:新的目标的前提就是必须有资金,而且最好对巧克力行业甚至食品行业全然不知不懂,如果是同行几乎没有人愿意投入这么大的资金,做风险如此大的生意。为什么一个做柯达交卷的经销商愿意经销巧克力是必须搞清楚的前提,他的动机是什么?带着疑问我们见面了。

  有刘总在自然我们很快就谈到正题,通过刘总之前的介绍此经销商王先生似乎对我们的产品、市场和资金要求都十分清楚,没有问过多的问题,他手中拿的合同也是我原与刘总即要签的合同,上面做了好多标记。我问的唯一的问题就是:“按我公司开发经销商的原则,王先生是不符合经销条件的,因为你没有食品销售渠道,我想了解你如何建立渠道,如何分销好时产品。”王先生不慌不忙的为我斟了一杯茶,接着说:“没有远虑,必有近忧。目前交卷生意不太景气,销售额一天不如一天,数码相机越来越普及,用不了多久,生意会受到致命的打击,所以未雨绸缪我必须选择新的行业,找到我公司新的机会,创造利润的新的增长点,置于你的问题,我认为并不难,因为不能说我们是隔行如隔山,因为销售很多地方都是同理的,只不过产品不一样,渠道不同而已。我可以马上招聘有经验的食品销售人员建立食品销售渠道,这些没有问题我相信。”实际上我也没有退路了,只要能完成200万的任务到年底,其它的都是次要的。但是此时此刻我还是表现的很为难的样子,故作矜持,我不想给这个经销商一种印象好时巧克力是没人代理的产品,是没有竞争的,是可以让他们用很长时间考虑的,是我非常渴望的,这样以证明过我失败了。这一次我提出关于贵公司的好时产品代理我需要慎重考虑,并需要向上级汇报,请等待。这也是欲擒故纵的技巧吧,我的确不想让煮熟的鸭子又飞了。

  11月1日

  经过一天的所谓“慎重”考虑之后,我提出很多很多附加条件,唯一的目的就是不想让对方认为我的答复很随意,毕竟越容易得到的就越不珍惜。置于那些附加条件内行人一看就知道是“小菜一碟”。唯一算的上苛刻的就是三日内必须签订合同并打款。

  11月2日经销商终于正式对我承诺后天签订合同,并首次汇款100万了,经销商又给了他自己2天的考虑时间,两天时间足可以改变一切,在承诺汇款这天来临前,我没有再打电话给这个经销商,因为这样做的结果是负面的,一点点的急躁心里都可能是知致命的。

  11月3日我什么都不想,什么也不做,没有其它的备选经销商了,还可以再找吗?但是现在的时间对于200万的任务已经没有可能了,没有近日鉴定合同打款订货,什么都来不及的。我不在考虑其它的经销商了,目前我只有这个唯一的经销商,唯一的希望。

  11月4日,这一天终于到了,我静静的等了一天,我没有收到公司给我的电话,也就是公司没有收到汇款凭证。经销商失去了承诺,我有些愤怒打电话去问,对方告诉我因为今天突然有急事,打款被耽误了,明天一定汇款。放下电话,我的眼前又一片漆黑,这样的承诺在以前做销售员的时候被证明是谎言。我心里想,我被欺骗了。

  我终于感受到在煎熬中渡过夜晚是多么的漫长,我不知道在这个夜晚是不是睡着过。夜里我不只一次的醒来。突然有了一个想法,我要置于死地而后生,明天必须有个结果要么死要么生,没有其它选择。这样的折磨生不如死,大不了不干了,尊严值多少钱一斤?我可以不要。

  11月5日

  一早起来,精神好了很多,8点一到我就打了电话给他:“如果今天收不到你的汇款,那么我们以后绝对不会再有任何合作的机会,这机会是你放弃的,你违反了你的承诺,我已经仁至义尽了,我准备好了我们所有的合作准备,鉴于你的做法,我已经开始考虑重新与其他的意向经销商进行合作”。我最清楚的记得我最后的话:“如果今天4点仍收不到你的汇款的话,我们永远不会再有合作。”然后我挂了电话,这肯定是实话,因为今天我还没有结果,我就在明天辞职,当然没有再合作的可能了。

第七节:心中的太阳再次升起

  这是一个只要你认真付出努力就一定能有所收获的时代。  

  中午12点我收拾好我的行礼,退掉了我住的招待所的房间,兜里的钱只够买张回大连的车票,当汽车即将驶离沈阳的时候,我的心情有多么的复杂,我突然感觉很孤单,感觉浑身乏力,我的眼始终盯着车窗外的田野和森林,脑子里一片苍白。汽车运行了几个小时,我似乎没有眨过眼,我始终盯着窗外。11月5日3点30分,突然我的手机响了,是北京公司上司的固定电话:“于良,恭喜你,你让我等太久了。”在这一瞬间,我终于体会到喜极而泣的感觉,我甚至发现哭泣是一种很好的享受。我的眼泪夺框而出不停的洒落在我的脸颊。这无疑是对我上任区域经理以来所有的努力及付出的回报。电话又响了,是这个经销商王先生:“愿我们合作愉快!”这个场景曾经在梦里出现无数次,今天终于成为现实。

  在以后的日子里,有关这个时期的情景曾无数次在我的记忆里,在我的心里,在我的梦里浮现,离我很近却又很遥远。在以后的日子里,每次来沈阳的时候,曾经激情和痛苦的岁月仿佛又回到眼前。经历是一笔财富,如今已过而立之年的我,变得更理性、更豁达,更从容,有一种不屈的精神一直伴随着我。

  笑到最后也是笑的最好的,最快乐的。成功和失败是同一过程。没有人在乎你以前曾经失败过多少次,经历最后一次失败而最终爬起来了,你就是成功者。

  一个人自已认为自已是个什么样的人很关键。认为自已是个平庸的人,则会按照平庸的轨迹去发展;认为自己具有大写的人格,则会向着非凡挺进。决定成败的最核心因素就在于此,所有的成功人的骨子里都有相同的内驱力:我必须成功!  

  献给:即将在或正在销售行业努力拼搏,苦苦探索的朋友们。

posted @ 2009-10-28 14:42 kangxm 阅读(399) | 评论 (0)编辑 收藏

2009年10月26日 #

我现在是自己做,但我此前有多年在从事软件开发工作,当回过头来想一想自己,觉得特别想对那些初学JAVA/DOT。NET技术的朋友说点心里话,希望你们能从我们的体会中,多少受点启发(也许我说的不好,你不赞同但看在我真心的份上别扔砖头啊).

一。 在中国你千万不要因为学习技术就可以换来稳定的生活和高的薪水待遇,你千万更不要认为哪些从事 市场开发,跑腿的人,没有前途。

不知道你是不是知道,咱们中国有相当大的一部分软件公司,他们的软件开发团队都小的可怜,甚至只有1-3个人,连一个项目小组都算不上,而这样的团队却要承担一个软件公司所有的软件开发任务,在软件上线和开发的关键阶段需要团队的成员没日没夜的加班,还需要为测试出的BUG和不能按时提交的软件模块功能而心怀忐忑,有的时候如果你不幸加入现场开发的团队你则需要背井离乡告别你的女友,进行封闭开发,你平时除了编码之外就是吃饭和睡觉(有钱的公司甚至请个保姆为你做饭,以让你节省出更多的时间来投入到工作中,让你一直在那种累了就休息,不累就立即工作的状态)

更可怕的是,会让你接触的人际关系非常单一,除了有限的技术人员之外你几乎见不到做其他行业工作和职位的人,你的朋友圈子小且单一,甚至破坏你原有的爱情(想象一下,你在外地做现场开发2个月以上,却从没跟女友见过一面的话,你的女友是不是会对你呲牙裂嘴)。

也许你拿到了所谓的白领的工资,但你却从此失去享受生活的自由,如果你想做技术人员尤其是开发人员,我想你很快就会理解,你多么想在一个地方长期待一段时间,认识一些朋友,多一些生活时间的愿望。

比之于我们的生活和人际关系及工作,那些从事售前和市场开发的朋友,却有比我们多的多的工作之外的时间,甚至他们工作的时间有的时候是和生活的时间是可以兼顾的,他们可以通过市场开发,认识各个行业的人士,可以认识各种各样的朋友,他们比我们坦率说更有发财和发展的机会,只要他们跟我们一样勤奋。(有一种勤奋的普通人,如果给他换个地方,他马上会成为一个勤奋且出众的人。)

二。在学习技术的时候千万不要认为如果做到技术最强,就可以成为100%受尊重的人。

有一次一个人在面试项目经理的时候说了这么一段话:我只用最听话的人,按照我的要求做只要是听话就要,如果不听话不管他技术再好也不要。随后这个人得到了试用机会,如果没意外的话,他一定会是下一个项目经理的继任者。

朋友们你知道吗?不管你技术有多强,你也不可能自由的腾出时间象别人那样研究一下LINUX源码,甚至写一个LINUX样的杰作来表现你的才能。你需要做的就是按照要求写代码,写代码的含义就是都规定好,你按照规定写,你很快就会发现你昨天写的代码,跟今天写的代码有很多类似,等你写过一段时间的代码,你将领略:复制,拷贝,粘贴那样的技术对你来说是何等重要。(如果你没有做过1年以上的真正意义上的开发不要反驳我)。

如果你幸运的能够听到市场人员的谈话,或是领导们的谈话,你会隐约觉得他们都在把技术人员当作编码的机器来看,你的价值并没有你想象的那么重要。而在你所在的团队内部,你可能正在为一个技术问题的讨论再跟同事搞内耗,因为他不服你,你也不服他,你们都认为自己的对,其实你们两个都对,而争论的目的就是为了在关键场合证明一下自己比对方技术好,比对方强。(在一个项目开发中,没有人愿意长期听别人的,总想换个位置领导别人。)

三。你更不要认为,如果我技术够好,我就自己创业,自己有创业的资本,因为自己是搞技术的。

如果你那样认为,真的是大错特错了,你可以做个调查在非技术人群中,没有几个人知道C#与JAVA的,更谈不上来欣赏你的技术是好还是不好。一句话,技术仅仅是一个工具,善于运用这个工具为别人干活的人,却往往不太擅长用这个工具来为自己创业,因为这是两个概念,训练的技能也是完全不同的。

创业最开始的时候,你的人际关系,你处理人际关系的能力,你对社会潜规则的认识,还有你明白不明白别人的心,你会不会说让人喜欢的话,还有你对自己所提供的服务的策划和推销等等,也许有一万,一百万个值得我们重视的问题,但你会发现技术却很少有可能包含在这一万或一百万之内,如果你创业到了一个快成功的阶段,你会这样告诉自己:我干吗要亲自做技术,我聘一个人不就行了,这时候你才真正会理解技术的作用,和你以前做技术人员的作用。

[小结]

基于上面的讨论,我奉劝那些学习技术的朋友,千万不要拿科举考试样的心态去学习技术,对技术的学习几近的痴迷,想掌握所有所有的技术,以让自己成为技术领域的权威和专家,以在必要的时候或是心里不畅快的时候到网上对着菜鸟说自己是前辈。

技术仅仅是一个工具,是你在人生一个阶段生存的工具,你可以一辈子喜欢他,但最好不要一辈子靠它生存。

掌握技术的唯一目的就是拿它找工作(如果你不想把技术当作你第二生命的话),就是干活。所以你在学习的时候千万不要去做那些所谓的技术习题或是研究那些帽泡算法,最大数算法了,什么叫干活?

就是做一个东西让别人用,别人用了,可以提高他们的工作效率,想象吧,你做1万道技术习题有什么用?只会让人觉得酸腐,还是在学习的时候,多培养些自己务实的态度吧,比如研究一下当地市场目前有哪些软件公司用人,自己离他们的要求到底有多远,自己具体应该怎么做才可以达到他们的要求。等你分析完这些,你就会发现,找工作成功,技术的贡献率其实并没有你原来想象的那么高。

不管你是学习技术为了找工作还是创业,你都要对技术本身有个清醒的认识,在中国不会出现BILL GATES,因为,中国目前还不是十分的尊重技术人才,还仅仅的停留在把软件技术人才当作人才机器来用的尴尬境地。(如果你不理解,一种可能是你目前仅仅从事过技术工作,你的朋友圈子里技术类的朋友占了大多数,一种可能是你还没有工作,但喜欢读比尔。盖茨的传记)。
posted @ 2009-10-26 14:53 kangxm 阅读(662) | 评论 (1)编辑 收藏

2009年5月12日 #

早上读RSS,看到不错的东西,抄录下来


1、  坚持不懈的向团队传达目标

2、  崇拜质量

3、  每天都和项目成员聊上两句

4、  敢于说不,慎于说不

5、  帮助项目成员解决困难,而不是帮他干活

6、  敏感,不将风险留到最后才面对

7、  懂得欢庆

个人觉得总结的蛮好,简单易懂,回想我工作这几年:
不管作项目组成员,还是作Team Manager;
不管项目成功,还是失败;
以上都比较有感触

posted @ 2009-05-12 11:24 kangxm 阅读(369) | 评论 (0)编辑 收藏

2009年4月21日 #

不小心把快速启动里面的“显示桌面”图标搞没了,懒得折腾,所以一直用WIN+D,还是觉得不太习惯。总觉得少了点什么......

后来还是把“显示桌面”找回来了!记录一下

以前用过一个自己编写“显示桌面.scf”文件的办法干过,具体操作如下:

记事本输入:[Shell]Command=2IconFile=explorer.exe,3[Taskbar]Command=ToggleDesktop另存为"显示桌面.scf",文件类型为所有文件。然后将文件拖到快速启动栏即可;


不过有点麻烦,这次 google了一下,找到一个更简单的办法;

“start”-->“Run”-->输入“regsvr32 /n /i:u shell32”

显示桌面.jpg

这个时候你会发现你的快速启动栏里面就有了“显示桌面”
posted @ 2009-04-21 10:29 kangxm 阅读(497) | 评论 (0)编辑 收藏

2008年12月18日 #

     摘要: 转:唐骏:我的创业第一步
寻找新的发展空间
  我的人生其实经历了很多次失败。考大学是一次失败,留学日本读研究生又是一次失败。我和板仓老师发生冲突后私逃美国的行为,无论如何都是不妥当的。但从另一个角度讲,从日本到美国的人生环境转变,是我的主动选择,也为我未来的职业生涯创造了新的契机。

  阅读全文
posted @ 2008-12-18 11:33 kangxm 阅读(428) | 评论 (0)编辑 收藏

2008年12月9日 #

例子在:\jasperreports-3.1.2-project\jasperreports-3.1.2\demo\samples

用ant工具运行就可以看到效果

1. alterdesign

该例子演示了报表编译后,在报表展现的时候如何动态的控制其中的元素
比如让某一个矩形变色或其他

2. antcompile

演示如何让 ant 来编译
3. chart

演示了如何在报表中添加图像,JasperReport是用Scriptlet的方式
往报表中添加图像,而Scriptlet是调用也是开源的jfreechart的Api来
生成图形,去jfreechart看一下,该工具能的图形生成能力也很强
4. datasource

演示了如何在报表中使用各种数据源,能够使用beanarray
beancollection,也可以用自定义的数据源,只要继承了JRDataSource的
两个接口,这个能给用户提供非常大的灵活性,报表的数据不用局限于一
条Sql语句,也可以使用存储过程,对生成报表中的数据也可以排序,二
次检索,等等
5. fonts

各种字体的演示
6. horizontal

演示了水平分栏的报表,演示报表中分了三栏,其中还用到了
textFieldExpression,就像if语句的效果来选择输出的内容
7. hyperlink

演示了各种样式的链接
8. images

演示了如何在报表中加入图像以及图像的显示方式
9. jasper

演示了分组分栏的报表,演示中用了2次group
10. jcharts

演示了调用另一个开源的API jcharts来往报表中加入分析图形,原理同
上chart,如果jfreechart都还不能满足你分析图形的要求,那到jcharts
里找找看吧,说不定有
11. landscape

演示横向的报表
12. nopagebreak

演示比如在IE中不分页的方式打印出报表的内容,通过这个演示也可以
了解报表输出如何配置参数
13. noreport

演示了如何直接通过java程序生成JasperPrint对象来输出
14. noxmldesign

演示了如何直接通过java程序生成JasperDesign对象来动态的生成报
表,根据这个例子,用户可以作出自定义选列的报表,当然比较麻烦,
而且肯定自己要补充他的API库
(JasperReport真是强大啊,呵呵)
15. pdfencrypt

演示了pdf的输出方式,可以给pdf文件加密码,其实就是pdf输出方式的
参数配置,具体有那些参数可配置,去看看API吧
16. printservice

演示了如何直接打印报表
17. query

演示了如何让查询的sql动态起来,比如你可以通过一个Jsp页面传
报表的sql的where条件,order条件,甚至整个sql语句
18. rotation

演示了文字纵向显示的报表
19. scriptlet

演示了如何继承JRDefaultScriptlet,并加入自己的处理语句,这个功能
可是很强大的哦,看看这些接口
beforeReportInit() afterReportInit() beforePageInit()
afterPageInit() beforeColumnInit() afterColumnInit()
beforeGroupInit(String groupName)
afterGroupInit(String groupName)
看看这些名字就知道你能完成那些功能,比如显示一列数据后,马上跟
上该列数据的分析图形,当然你也可以加上自己的方法并在报表中调用
20. shapes

演示了JasperReport中自带的图形,及能配置的参数
当然你也能继承或者覆写JasperReport中的Api生成你要的图形,
21. stretch

演示了如何处理报表中数据拉伸以及带来周围的线及框的拉伸,
你能了解到虽然黑框式表格不是JasperReport中缺省的展现方式,
但在JasperReport中不难实现
22. subreport

演示了子报表,还告诉你一个报表中可以有n个子报表,子报表中还可以
嵌套子报表
23. tableofcontents

演示了如何生成一个有目录的,复杂的报表
24. unicode

演示了各种 字符编码
25. webapp

演示了如何把报表放到一个JavaWeb项目中,可以用Jsp Servlet
applet,笔者做了一个有参数页面,可以选择html pdf applet
输出方式的报表,有兴趣的 我可以在后面放上代码
posted @ 2008-12-09 16:59 kangxm 阅读(1023) | 评论 (0)编辑 收藏

2008年11月20日 #

今天看到一篇帖子,作者用通俗的语言形容了一下次贷危机的形成原因,强人啊!
原帖地址:
http://jrwua.spaces.live.com/Blog/cns!FD3F0102B0A1BFDF!360.entry

一男赶集卖猪,天黑遇雨,二十头猪未卖成,到一农家借宿。
少妇说:家里只一人不便。
男:求你了大妹子,给猪一头。
女:好吧,但家只有一床。
男:我也到床上睡,再给猪一头。
女:同意。
半夜男与女商量,我到你上面睡,女不肯。
男:给猪两头。
女允,要求上去不能动。
少顷,男忍不住,央求动一下,女不肯。
男:动一下给猪两头。女同意。
男动了八次停下,女问为何不动?
男说猪没了。
女小声说:要不我给你猪……
天亮后,男吹着口哨赶30头(含少妇家的10头)猪赶集去了……
哈佛导师评论:要发现用户潜在需求,前期必须引导,培养用户需求,因此产生的投入是符合发展规律的。

(加强篇)
另一男得知此事,决意如法炮制,遂赶集卖猪,天黑遇雨,二十头猪未卖成,到一农家借宿.
少妇说:家里只一人不便。
男:求你了大妹子,给猪一头
女:好吧,但家只有一床。
男:我也到床上睡,再给猪一头。
女:同意。
半夜男商女,我到你上面睡,女不肯。
男:给猪两头。
女允,要求上去不能动。
少顷,男忍不住,央求动一下,女不肯。
男:动一下给猪两头。女同意。
男动了七次停下,女问为何不动?
男说:完事了~~~女:......
天亮后,男低著头赶2头猪赶集去了......

哈佛导师评论:要结合企业自身规模进行谨慎投资,谨防资金链断裂问题


又一男得知此事,决意如法炮制兼吸取教训,遂先用一头猪去换一粒伟哥,事必,天亮后,男吹着口哨赶38头(含少妇家的18头)猪赶集去了……
哈佛导师评论:企业如果获得金融资本的帮助,自身经营能力将得到倍增。

知道此法男多,伟哥供不应求,逐渐要2头,3头猪换一粒伟哥。
哈佛导师评论:这就是通货膨胀。

当猪价格涨到16粒一棵的时候,哈佛导师评论:该男已经进入边际成本,除了拥有对自身能力的自信和未来良好愿望以外,实际现猪流已经为零。

但换猪男越来越多,卖伟哥的决定,扩展生产能力,推出一种次级伟哥,如果你缺一头猪,只要你承诺可以到该女房中一夜,就可以先借,事成后补交猪款,这个方法大大促进了伟哥销售。
哈佛导师评论:这就是贷款,让企业可以根据未来的收益选择借支流动资金

伟哥专卖店后来在即使你一头猪都没有,只要你承诺可以到该女房中一夜,就可以先借,事成后补交猪款。
哈佛导师评论:这就是金融创新,让现在的人花未来的钱,反正等你老了未来的钱你也花不动。

消息一出,换猪男越来越多,有人找伟哥专卖店,这个项目太好了,我们把它变成优质基金,对外销售债卷,你们也就可以分享我的收益,如何?
结果伟哥专卖店觉得甚好,于是该公司把换猪男分三类,一类是拿现猪换的,一类是一部分现猪贷的,一类是完全没有现猪借的,发行三种债卷。大家踊跃而上。纷纷购买伟哥专卖店的债卷,伟哥专卖店生意太好,就把债卷销售外包给另外一家公司运作,该公司也一并大发其财,公司越做越大,甚至可以脱离实际伟哥销售情况来发行,给自己和伟哥专卖店带来巨大的现金收益。
哈佛导师评论:这就是专业的人做专业的事,从实体经营到资本运作,经济进入了更高的层次。

为了防止自己债卷未来有损失,该公司决定给它买上保险,这样债卷销售就更容易,因为一旦债卷出现问题,还可以获得保险公司的赔付,哇,债券公司销售这下子太好了,保险公司也获得巨大平白无故的保险收入。
哈佛导师评论:这就是风险对冲,策略联盟,提高了企业的抗风险能力,也保护了消费者利益。

换猪男太多,排长队等待,该女无法承受,说老娘不干了,我搬家,一时间有无数拥有伟哥的欠猪男。
哈佛导师评论:这是个别现象,属于市场的正常波动,不会影响整个经济。

结果该女迟迟不肯搬回。一部分欠猪男没有收入,只好赖帐,结果大量债卷到期无法换现猪吃,债卷公司一看,一粒伟哥16头猪,这哪里还得起,宣布倒闭
哈佛导师评论:这是次贷危机,不会影响整个金融行业。

哪里晓得债卷公司还把债卷上了保险,保险公司一看,这哪里赔得起,于是也宣布要倒闭。
哈佛导师评论:这是金融危机,还不会影响整个实体经济。

后文:据说该女已搬到中国定居。
posted @ 2008-11-20 14:55 kangxm 阅读(429) | 评论 (0)编辑 收藏

2008年11月14日 #

 成功IT经理的11个显著特征

1、了解公司需求的能力 

                    所有的IT经理都需要知道如何才能够了解公司的需求,因为这同自己的技术职责密切相关。不管自己在公司当中的位置如何,作为一名IT经理,你都有必要了解公司的真正需求,只有在此基础上才能做出“正确的事情”。太多的IT经理在制定“IT议程”之前都没有真正了解公司的目标和需求。迅速掌握了解公司技术需求的能力会让你了解自己更多的职责。如果IT经理在制定计划时由于缺乏了解公司需求的技能而“错过了公司的目标”,公司可能会蒙受数万美元的损失。了解公司的技术需求是IT经理职业生涯发展的一个重要组成部分。 


2、制定前景规划的能力 

                    想要成为一名优秀的IT经理,你必须要能够确定自己的目标,并且制定出前景规划,让你手下的员工了解你希望大家通过努力能够取得的成绩。想要成为一名优秀的IT经理,你要担负起自己的职责,领导整个小组向着目标前进。能够制定出计划并且清楚的向自己手下的员工说明的IT经理能够在工作中取得巨大的成功,因为你手下的员工会按照你的要求去做。清楚的向自己手下的员工说明自己的前景规划会让他们了解工作的中心,让他们了解你会带领他们向明确的目标前进。 


3、制定计划的能力 

                    一旦知道了自己想要实现的目标,成功的IT经理会知道如何去制定计划,以实现自己的目标。这意味着要正确估计眼前的形势,知道哪些事应该摆在优先的位置,制定出大胆而又切实可行的计划。对于一名想要取得“高度成功”的IT经理来说,制定计划是一个非常基础的步骤。但可惜有太多的IT经理没有能够做到这一点。在这种情况下,他们所取得的工作成绩要比公司有能力取得的成绩小的多。拥有制定计划的能力,通过计划的实行来实现公司的目标会让你承担更多的工作职责。事先制定计划表明你是一个积极主动而不是一个消极被动的人。 


4、组建小组的能力 

                    成功的IT经理知道组建一个有深度而又有技能的IT小组的重要性。既要知道如何改进现有的IT小组,又要知道如何白手起家,建立一个新的IT小组。我所见过的所有优秀的IT经理都有根据手头的工作任务建立一个有力的工作小组的能力,有正确预计未来工作需求以使整个小组做好应对新挑战的准备的能力。强有力的职业IT经理能够有效的组建自己手下的员工队伍。他们了解职业生涯的重要性,并且愿意把职业生涯的构建作为一种工具,来组建强有力的工作小组,更加独立的开展工作。 


 5、集中使用资源的能力 

                    如果想要取得成功,IT经理要集中公司所有的IT工作人员、资金和技术资源,处理最关键最重要的事情。公司技术资源的使用要同公司的需求和目标保持同步,并且要通过多产有效的方式。任何有清楚的职业发展目标的IT经理都知道集中使用资源的重要性。 


 6、贯彻“客户服务”理念的能力 

                    对于任何IT公司来说,高水平的客户服务都是非常重要的。成功的IT经理会在员工的心目中贯彻一种客户优先的文化理念??不管是内部用户还是外部客户。优秀的IT经理知道自己职业生涯的存在和发展是由于客户需要他们提供的技术,支持他们提供的服务。这也正是成功的IT经理要同客户建立出色的关系的原因。 


7、管理项目的能力 

                    公司能够以可以预见的有效方式制定出项目计划是所有IT经理开展工作的基础。任何IT经理想要取得成功,都要对项目进行有效的管理。不管你的职业生涯发展方向如何,强有力的项目管理技能都能够增加你获得成功的机会。 


 8、应对变化、进行管理的能力 

                    迅速的发展变化是技术的本质特征。每一个IT经理都要了解如何有效的应对变化、进行管理。不能有效的应对变化会影响IT经理职业生涯的发展。 


 9、领导员工并激发其工作热情的能力 

                    如果工作热情得不到有效的激发,IT工作人员就无法在工作中发挥出自己最大的能量。成功的IT经理总是能够对员工进行强有力的领导并激发他们的工作热情。成功的管理人员知道如何发挥他人的潜质,这是一项非常重要的技能。 


10、有效沟通的能力 

                    成功的IT经理能够通过多种不同的方式同不同的员工进行沟通。通常,职业生涯的成功在很大的程度上依赖于有效的沟通技能。想要成为成功的IT经理,必须能够同各种人进行有效的沟通,既包括技术人员也包括非技术人员,要同高级经理交换对项目进展状况的看法。很多IT经理就是因为做不到这一点而极大的影响了自己的工作成绩。能够在自己的职业生涯中取得最大的成功的IT经理能够同所有人进行有效的沟通:员工、同行、外部客户、销售商和高层管理人员。 


11、追踪并衡量工作表现的能力 

                    确定目标并以此来衡量工作表现是非常重要的。成功的IT经理能够通过明确的方式来衡量小组的工作表现,并且通过反馈信息来改进工作表现。
posted @ 2008-11-14 10:05 kangxm 阅读(420) | 评论 (0)编辑 收藏

2008年11月4日 #

前一篇中讲了团队建设中应该着重、优先考虑的一些做法,但是,革命不是请客吃饭,团队建设中也不可能总是和风细雨,总会遇到一些非常情况,也总会用到一些非常手段。下面,就谈一下自己信奉的一些名言和实际体会。
首先,既要可以“俯首甘为孺子牛”也要能够“横眉冷对千夫指”。在面对对立、被误会、被造谣中伤甚至暂时的众叛亲离等困境时,一定要够坚忍!这其实不难做到,一个基本的态度是:活着,要充满感激。这是我在学校当班长时,面临前面提到的困扰时悟出的。当时的想法是:现在遭遇的种种比将来到社会上将要遭遇的,不只要少多少、轻多少,那么现在不就是一次好的锻炼机会吗?和你过不去的人不就是在帮你吗?帮了你,不就该感激他们么?这样想了以后,顿时浑身清爽,跑道操场上,当时的感觉就是阳光在每一个草尖上跳舞。其后是在进水口带工程师组的时候,因为面临要把失去的工期抢回来,又要转变由来已久的工作作风,“乱世用重典”,又没有过多的时间去解释、通融,一时间恶名远播。但当时经过多年的历练,已经很自信了,知道自己是什么样的人,也坚信时间和事实能证明一切,再加上上司的信任和支持,最终也挺过了这一关。另外一个基本态度就是:不要害怕得罪人,不能以和求和。原因很简单,你来工作的目的是干活拿钱,是把工作做好,不是来交朋友的。所以,对危害团队的人和事,一定要坚决反对,处理起来要当机立断,毫不手软。这方面,我又成功的经验,也有深刻的教训。曾经有两个人,自己判定他们不适合待在团队里,但因为有上司地说请给留了下来,最终都惹了一些不必要的麻烦,后一个还给工作造成了较大的损失。
有了基本的态度以后,策略上,“谁是我们的朋友,谁是我们的敌人,这是革命的首要问题”。实际上,这也是团结一切可以团结的力量,争取大多数;孤立、分化、瓦解、打击极少数的问题。即便是在要打击的极少数里头,也还要再讲个“首恶必惩,协从不纠”。总之,打击面要尽可能的窄!因为,这绝不可能双赢,所谓“杀敌一千,己伤八百”。所以,一定要慎重,而且,必须是在团队利益受到危害时逼不得已的选择。这里讲的敌友,衡量的标准就是是否危害团队利益,绝不可凭个人好恶。
敌友问题搞清楚了,下一个面临的就是雷锋说的:对待同志,要像春天般温暖;对待敌人,要像严冬般冷酷。一旦决定对危害团体利益的人和事采取行动,就一定要坚决有力,次数上要尽可能少而精,力度上要尽可能稳准狠。要让人知道,你手里有剑,而且,一旦需要,这把剑会毫不留情地砍下来的。这样做的原因,还有一点就是:对待人的群体,在认同“性本善”的同时我还认同枣核理论。就是说:在群体里头,特别好的和特别坏的都是少数,绝大部分人是集中在中间的,往两头跑的。榜样的力量是无穷的!决定这个群体性质的关键就是看哪头得势。作为一个团队建设者,就是要惩恶扬善,树立正气,形成良性循环。一旦形成良性循环,工作就非常顺利了。
至于说具体手段,就要因人就事,不拘一格了。毛泽东讲:这个世界是复杂的,所以我们的思想也要复杂一些。尤其你面对的人,往往都是小人、恶人、自认为聪明的人。所以,不讲些手段,仅凭善良和正义是不行的。不要对手段抱有成见,其实和内容决定形式一样,目的决定手段。就像毒药,可以用来害人,也可用来杀耗子,帮助人。手段本身无罪,关键看你用来做什么。不过,运用手段的时候,有一点一定要提防,不要像面具的故事那样在戴面具的过程中被面具迷失了本性。依据自己的性格,追求和应用的手段就是不用手段,实在要用,也是一招制敌。武侠小说里讲:无招胜有招。古龙更是塑造了小李飞刀。实际中,看着对方费尽心思玩手段对付你;你呢,你不跟他玩,只是好整以遐地看着,什么时候不想看了,一刀捅到他心口窝,他的所有动作戛然而至。你脸上不动声色,但心里的感觉,爽!不过,这也说明自己的修炼还不够,包括在这里舞文弄墨。真正的境界应该时宠辱不惊,心如止水。
还有一点:朝中有人好做官,不管是外企还是国企,上司的信任和支持都非常重要,尤其在你面对非常情况、陷入困境的的时候!事实上,自己几次成功的团队建设经历,也都和上司的信任和支持分不开。可惜的是,在处理和上司的关系上,我做得很不好,需要的是更多的反思、提高和转变,主要是个性和观念。和大部分人一样,我认为跟上司走得近乎是巴结、逢迎、献媚。自己曾长期津津乐道并引以为豪的是不会去故意和上司套近乎,得到信任是因为自己的实力。后来的两件事情和两篇文章是我改变了看法。一是遇到了一个巨细管理的上司,什么都想自己管,猜忌防范下属,虽然他最终没能怎样,但确实给个人、给工作带来了较大的困扰。还有一次经历,我曾一度失去了一位一直很信任和支持我的上司的支持和信任,虽然最终排除了干扰,但毕竟有了一段不愉快的回忆。再看看历史上,那么多的忠臣良将被奸人所害,不都是教训深刻么?后来,在学习项目管理的过程中,我看了两篇文章,一篇是关于如何应对巨细管理的,一篇是关于如何看待办公室政治的。具体内容不管它,两篇文章有一个共同点就是,碰到这些问题,不能逃避,要抛开传统观念,从问题的正面出发,积极应对。虽然其中种种行之有效的技巧我还是做不来,但起码不像以前那样反感。而且,一些基本的概念也已确立,比如:上司也是人;上司周围的空间,与其让小人、奸人去填补,不如你去填补;你可以对客户做的,为什么不能对上司做,何况,上司是你最重要的客户等等。
个人的体会,基本上就是这些了。和上一篇讲的优先考虑的做法不一样的是:既然是非常手段,就只能在非常情况下使用,只是辅助手段;和上一篇讲的优先考虑的做法一样的是:正确与否,都要以是否有利于团队建设为衡量基准。 
posted @ 2008-11-04 13:18 kangxm 阅读(387) | 评论 (0)编辑 收藏

团队建设,简单讲就是:给你一拨人,你得能把他们拢在一起,朝着一个方向走。怎么做呢?下面就把个人实践中,认为应该优先考虑的一些做法给列出来: 
首先,一切的前提?尊重!不懂得尊重人,一切都无从谈起。这个尊重不是来自鬼都不相信的“人人生而平等”,而是来自于坚信“只要是个人,就有比自己强的地方,就有用”。这个尊重是有形的,是可以看得出来、感觉得到的,比如说:你对人的守时、守信、虚心听取意见等等。最大、最可贵、最有效地的尊重是信任!这体现为对团队成员的合理、有效的授权和委任。
然后是沟通,把情况了解上来,把影响施加下去。好的沟通就像一个灵敏有效的神经系统,又像是机件运行的润滑剂。沟通的手段多种多样,自己比较喜欢用的有:聊天;有人曾经问我:怎么整天见你跟人聊天啊?我的回答是:聊天也是工作。因为,那不是乱聊的,尤其在时机和话题的选择上。目的只有一个?拉近距离,融洽气氛,了解情况,施加影响。还有比较喜欢用的就是娱乐,尤其是下棋、打牌、喝酒,这三项活动最能体现人的性格,想藏都藏不住。性格无所谓优劣!最重要的是要因人而异,善加利用。通过合理的组合,减少冲突,增强合力。
还有就是文字记录,一定要让团队成员,尤其是关键成员养成做文字记录(正式非正式)的习惯,这对团队建设本身不是十分重要,但从企业管理和项目管理的角度来看,却是非常重要。而且,团队建设的目的,也是为了最终把工作做好。
然后是服务,这是团队建设的核心内容。要尽可能地把自己是头、有权发号施令的念头压下去,把监督、控制等字眼儿压下去。更多地想的是对这个团体的责任,目的是要把工作做好。工作最终要靠整个团队,而不是某个人来完成。要立足于服务,给团队成员创造出一个良好的工作环境。
换句话说,组织者的任务就是把台子搭好,让团队成员把戏唱好。不要担心会被抢了风头!一则,戏唱的再好,到上司那里汇报的还是你;二则,即便是团队成员最终超越了你,你真诚地帮过他,他自然也会帮你,何乐而不为呢?所以,不要吝啬在上司面前肯定团队成员的成绩,更不要邀功于己,诿过于人,这是非常忌讳的。要让团队成员放手工作,“错了,责任是我的,对了,功劳是你们的”这句话,不但要说,更要做!
这里讲的服务,既是工作上的,也是生活上的,都很重要,都要尽可能细致、周到。服务做好了,管理基本上也就到家了。这里需要指出的是:服务不等于迁就,是有原则的,也是在自己能力范围内的。还有,在这个过程中,会有不少误解、委屈,也会很“吃亏”,没办法,谁让你是头呢,如果你想把工作做好,这些你都得认喽,吃这些小“亏”占“工作做好”这个大“便宜”。等成绩出来的时候,那些误解、委屈也就没了,你收获得将是一帮多少年后都还彼此眷顾、相互信任的朋友和一段美好的回忆。
还有协调和组织,也就是把合适的人放在合适的位置上。实际上,作为一种具体的技能和工作内容,这是和尊重、沟通和服务是连在一起的。把前几项做好了,协调组织基本上就是个水到渠成的问题。由两个需要注意的方面,一是要注意实际情况,因人就势;一是要注意尽可能多地、合理地授权,管得越少越好。
再就是激励。物质奖励是必要的,但一定要慎用、少用。因为,好事往往会变成坏事,尤其对于时下的国人而言。不但起不到激励的作用,反而造成不必要的麻烦,增加攀比、猜忌等矛盾,破坏气氛。而且,如果老是要靠物质刺激来激励的话,就说明组织、薪酬体系有问题。
激励更多的应该是精神层面的,最有效的就是对人真诚的尊重和信任、充分有效的授权和对成绩及时有效的肯定,最不济也可以用哥们义气。如果你能真正重视团队成员的意见并给予充分、有效、适当的授权,完成任务时给予及时的肯定,失败时给予真诚的帮助和鼓励,比许诺奖他多少多少钱产生的激励作用要来的强烈和持久的多。“士为知己者死”,虽然没必要那么夸张,但作用绝不可低估。每个人都希望自己的工作获得认可,及时、公开的表扬就显得很重要了,那代表着认知、肯定和认同。
最后,也是最重要的,就是个导向问题。前面提到的种种,都要以一个原则为导向,那就是:产生合力,达成目标,最终目的是要把工作做好。这是基本准则,也是衡量团队建设成功与否的标准。
总之,团队建设说难不难,说易不易,关键在于你如何把握。只要你热心、诚恳、负责任,肯和团队成员交朋友(洛阳有句话:伙计搁好了,活也就做好了),加上一些必要的技巧(不是玩心眼),和上司的支持(这也非常必要),团队不愁建不好。非常手段的使用 
posted @ 2008-11-04 13:16 kangxm 阅读(427) | 评论 (0)编辑 收藏

2007年9月28日 #

     摘要: SiteMesh:一个优于Apache Tiles的Web页面布局、装饰框架  阅读全文
posted @ 2007-09-28 15:34 kangxm 阅读(9871) | 评论 (3)编辑 收藏

2007年9月27日 #

     摘要: 最近经常看一些朋友写的源代码,总是感觉编码规范问题还没有成为大家的关注点,导致代码的通用可读性相对比较差;

所以在此唠叨几句编码规范(以struts2+spring2+hibernate3架构的项目为例),大家各取所需,欢迎拍砖!
  阅读全文
posted @ 2007-09-27 13:31 kangxm 阅读(3536) | 评论 (10)编辑 收藏

2007年9月21日 #

     摘要: 教你十招优化WinXp系统盘  阅读全文
posted @ 2007-09-21 16:13 kangxm 阅读(924) | 评论 (2)编辑 收藏

2007年9月14日 #

    水木周平:“中国99%的白领以及他们的家庭即将面临破产。而且是必然破产!无路可逃!这件事可能是发生在未来2-10年。你可以尽量去怀疑这个数字。但它必然发生,绝非危言耸听。”
   
    就如我预言中国国营企业职工必然失业一样,在当时来说没人信。但确实会发生。因为在中国这样一个发展中国家,其必然以不断的以通货膨胀和改革手段来换取经 济的发展。而每一次改革所带来的阵痛都是由百姓来承担的。无论是上山下乡时迷茫的知青们还是改革开放带来的大量国企纷纷倒闭时大量下岗职工。如果他们能有 一定的前瞻性的话,那么我想他们也许会为自己留一点后路。但是由于过分相信文件以及过分相信生活不会突变,所以才导致了他们的人生悲剧。有人说政府不会坐 视不理白领破产,其实政府当然不愿意。可有的事情……怎么说呢。想想当年的下岗职工吧。引起了那么大的社会震动。又能怎样呢?今天的白领明天破产的时候也 那样而已。

    而改革开放20多年来,中国的经济发展快速腾飞。但旧的体制并没有完全更改。各种重要行业依然施行的是政府垄断机制在运转。如:银行,金融,冶金,能源, 信息,运输,医疗,教育,土地。在改革开放初期我国不可能对这些东西进行全方面的改革开放。但到了今天,垄断经营所带来的矛盾日益突出。首当其冲的就是房 地产。由于我国的法制不健全,尤其是金融以及改革领域里出现了各种失误导致房地产节节攀升。随着房地产的增加以及外来人口向大城市集中。所以城市新民工也 就是所谓的“白领”收入表面上也在提升,以北京为例3000-15000元人民币的月薪处处可见。但这一部分收入主要用于支付租房或还贷。

    为了深入地了解为什么99%的白领家庭会破产,我们就必须先了解房价为什么会这么高?高在哪里?资金是运转的?(这里的白领指买房或者准备买房族。)以及发展趋势带来的相关效应。本文会分三个阶段向你阐述。
   
    1:导致房价爆涨的第一个因素:银行竞争下的贷款开放。--水木周平

    其实房价的爆涨的因素主要是因为百姓在替政府所犯下的错误买单。比如以前一个开发商通过某银行贷款了1000万开发了一个房子。如果还不起那他就 倒霉了,因为所有的银行都是一个体系,你欠了钱没还就再也没有翻身的机会。但是中国在银行改革的基础上开了一条口子,为了各银行之间的竞争所以把工行,农 行,建设银行等等全部独立运营。这本来是好事。但问题是这些银行都不是私有的,而是国家的。我们不难想象。当一个开发商从工行贷款1000万的后果。他只 需要用500万来开发房子,然后把售价提升,再把这个开发中的房子按他的售价标准抵押从农行再贷款2000万,然后再用这2000万中的1000万开发一 套售价更高的房子来找建设银行抵押贷款4000万。就是这样一个滚雪球的疯狂贷款模式。房子卖不卖得出去不重要,关键是房价要高,不得降价。反正银行的钱 不是私人的,所以稍微疏通一下行长加之又有“合法的”高零售价的楼盘做抵押所以自然就越来越好从银行贷款。

    那么这样造成的结果就是,房子价格只攀不跌!因为不能跌!一跌银行贷出去的款就再也回不来了。这可是政府的银行,政府的钱!所以为了堵住这个资金黑洞一些 被收买的专家、媒介便开始疯狂制造舆论用各种舆论手段威逼利诱人买房子。比如土地资源严重紧张,再不买房将来就只能住在郊区呀之类的。导致人们不得不去买 房。其实住不了市中心这种情况这根本不可能发生,城市居民是一个新老替换的过程,要上班的住城里,老人退休喜欢住郊区。只要人口不爆炸就不会出现上班族住 不了市中心的情况。虽然这些舆论造成了很多人买房子,但是仅仅是这样,房价还没有高到现在这样的离谱。紧接着政府又犯了第二个错误。


    2:导致房价爆涨的第二个错误:中国特色的按揭。--水木周平

    按揭本来是一种西方很流行的制度,也很合适。但这个制度一旦运用到中国就有点问题了。因为从大的体制上来说。所有银行都是国家的,而不是私人的。所以贷款这个关口就不可能控制得住。只要文件上说得过去,人们就能贷到款。

    为了早日缓解第一个错误所带来的资金黑洞。政府开始实行个人按揭制度来售房。还经常举什么美国来太太和中国老太太的例子来诱惑人们去按揭。确实有 人按揭了,而且是疯狂的按揭。只要和银行有点“路子”的人。他们先按揭一套80万的房子,自己出10万首付然后再从银行贷出70万。之后再把这个房子抬高 价格到180万出售。这个时候他们的亲戚或者老爸老妈再去买下,也用按揭的方式自己出首付30万再从银行贷出150万。然后就不管了。他们不还贷款怎么 办?银行爱收不收。反正根据合同我还不上钱你可以收走房子,我们两不相欠。

    所以转了一圈,抬高了几倍价格的房子又回到了政府回到了银行手里。这就解释了为什么很多新楼盘刚开始修就被“炒房团”买走了。他们炒的不是赌房子会升值。而是拿了房子去收拾银行。

    银行拿到这个房子怎么办?更不敢降价了。只好再加点价接着卖。所以普通老百姓现在根本别想买到真正合理价格的房子!即使你直接从开发商手里买来的 房子都说不定已经转了好几次手又回到银行以及开发商手里的了。说句不好听的现在8000/平的房子里,有只有2500才是房价,有5500都是以为决策错 误带来的资金黑洞!也就是说你正在替人任劳任怨的擦屁股。


    3:第三个问题:白领家庭何时破产??--水木周平

    那么我们研究了房子价格为什么会涨,再来研究一下中国城市所谓的白领家庭破产的必然性。

    首先国外白领收入确实是高,但是高得有价值。而中国所谓的白领则普遍素质较差。中国企业内耗严重。人人相轻,人人顽固。所以难怪外资企业一进入中 国大陆市场就开始惊呼:“在中国办企业招不到人!”对此我也深有体会。那有人会说:“既然现在的白领不值这个身价,那水木周平你说说为什么他们还能拿到这 样的薪水呢?”

    其实,这由于房地产的火爆造成的一个量子效应。银行损失的资金大量的经过少数人之手流向了市场。这些人开始在中国的其他领域疯狂投资。因为他们自 己也知道房地产就快要崩盘了。他们这样一轮又一轮的投资热潮正在快速消化这些资金,他们投资互联网,投资高新技术,投资娱乐,投资很多很多。但起码付出的 工资要够员工付房子月租或者月供吧。所以正是因为房价的高涨所以造就了中国城市人口工资水平的相对提升。不相信你自己算算你所在的城市白领阶级平均收入一 旦交完每月的房钱,手上还能剩多少钱?我想这个问题就不用我再罗嗦了吧。大家心理有数。所以我可以说一旦房地产崩盘紧接着崩溃的就是你的工资。

    有很多很多我认识的白领们都购了房。他们的算盘很简单:“两口子除开各种税收保险每月纯收入还余12000。交3000房钱算什么?我还能再买一 套呢!”是的不算什么。但因为房子贵所以什么东西都贵。吃的贵,交通贵,学费贵,医疗费用更贵!!!所以交了房钱你再除开生活费用就基本上一分钱存不下 来,就算存点也赶不上正常的通货膨胀率。问题是如果能一直保持这个现状的话,理论上说应该没事。你这二十年赚来的钱正好可以弥补政府的两个错误带来的亏 损。

    但问题也出在这里。随着WTO5年缓冲期的结束,具体时间应该是在2006年的12月31日。大量外资通讯,银行,医疗,保险等等公司都会陆续进 入中国。到时候没有人能阻止你把钱存入花旗,存入汇丰。请问一下到那个时候谁愿意把钱存在呆帐坏帐如此之多的中国国有银行呢?即使政府再怎么采取措施也可 能挤兑,所以到时候会发生什么现在还很难说。但有一点可以肯定的是到时中国国有这些银行的压力将变得非常巨大。贷款就会难上加上,因为银行根本无钱可贷! 同时大量具备高素质人材的外资企业进入中国必定带来市场的强烈冲击和大量现有企业的倒闭以及白领失业。也就是说。一旦外资企业加入竞争,中国现有的99% 的白领都将面临大环境下的就业压力!

    而且外资银行一旦积累了资金开始投资房地产,那么由于它们是正常的操作流程所以造出来的房子就会便宜,其必然拉动全国房地产大幅下跌。如我刚才所 说,房价一跌,紧跟着跌的就是你所在的企业的工资收入!可你之前买的房子还贷价格并不会降低或者减少,所以你将无力支付高昂的贷款。那么你的的房子会被银 行收走,你的存款会被直接冻结。所以未来中国城市中的白领们最大的可能是和几十年前的中国国有企业职工一样。辛辛苦苦二十年,到头来竹篮打水一场空!

    如何避免破产?--水木周平

    看到这里您应该明白,不要买房是一个避免破产的好办法。不过我还要提醒你,为了托住楼市不跌,他们还有个办法,那就是鼓吹老百姓不买房就不是个爷 们儿!您别说,这还真有点效果。现在的人一张口第一句就是:“你有房吗。”似乎你没房就是个太监一样。我实在是气得连骂人的力气都没有了。还有人在百度水 木周平这个帖吧里发帖说:“不买房子你住哪里?”我就奇怪了,住和买有必然联系吗?在中国一个土地都不属于你的房子卖给你和租给你有什么区别?(笑)。更 别提土匪一样的物业和把人不当人的强制拆迁!这不纯粹是“皇帝的新装”吗?不过既然WTO中已经说明出版业和传媒业中国还是不对外开放的。那么舆论救市就 会成为政府和开发商手中的最后一张王牌。所以我们在面对很多花言巧语的时候还是自己多动动脑子。以后我们听到的房产的鬼话会越来越多,越来越令人发指!比 如最近就有砖家在鼓吹房价不贵时都说:“什么即使年薪5万,两口子也是一年10万,5年就50万。所以房价当然不贵。”我奇怪的是居然有人点头称是?也许 对于这种或者此类已经进化到了不吃不喝不病不穿不动且爹娘早已死绝不用赡养的砖家来说也许还真是那么回事。所以大家注意提高警惕。

    结束语:--水木周平

    已经买房或者准备买房的白领一族必定随着房价的崩溃而崩溃,那会是一个缓慢发生的过程。短则两年,长则十年。但这是不可逆转的趋势。所以中国 99%城市白领一族已经面临破产一说绝非危言耸听!今天你往银行交的每一分房钱都是替政府替炒房者补洞,只有一小部分是真正的房钱。明天大环境一变,你没 有那么多资金来补洞的时候就会被市场和银行一脚踢回老家,换一批新人来接着补。不信?走着瞧呗!--PS:为什么我说99%这个数,是因为根据我的了解 99%的人一旦月薪过5000就开始买房,甚至3000,4000都买。小俩口什么都不明白这样买下去人生一定会很惨。我只是替他们感到忧伤。当然如果你 是那1%的智者,多劝救他们吧。独乐乐不如众乐乐。

    本文转载自:http://www.blogjava.net/fanyingjie/archive/2007/09/05/142964.html
posted @ 2007-09-14 10:47 kangxm 阅读(546) | 评论 (3)编辑 收藏

2007年6月18日 #

    我终于有机会带项目了!鼓励一下自己!:-)

    先全力以付把系统设计做好!加油!!!
posted @ 2007-06-18 09:03 kangxm 阅读(710) | 评论 (2)编辑 收藏

2007年5月28日 #

     摘要: 共享一个MyEclipse5.5GA注册码  阅读全文
posted @ 2007-05-28 09:21 kangxm 阅读(12527) | 评论 (170)编辑 收藏

2007年5月10日 #


Ctrl+1 快速修复(最经典的快捷键,就不用多说了)

Ctrl+D: 删除当前行   

Ctrl+Alt+↓ 复制当前行到下一行(复制增加)

Ctrl+Alt+↑ 复制当前行到上一行(复制增加)

Alt+↓  当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)

Alt+↑  当前行和上面一行交互位置(同上)

Alt+←  前一个编辑的页面

Alt+→  下一个编辑的页面(当然是针对上面那条来说了)

Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性

Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)

Shift+Ctrl+Enter 在当前行插入空行(原理同上条)

Ctrl+Q  定位到最后编辑的地方

Ctrl+L  定位在某行  (对于程序超过100的人就有福音了)

Ctrl+M 最大化当前的Edit或View (再按则反之)

Ctrl+/  注释当前行,再按则取消注释

Ctrl+O  快速显示 OutLine

Ctrl+T  快速显示当前类的继承结构

Ctrl+W  关闭当前Editer

Ctrl+K  参照选中的Word快速定位到下一个

Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)

Ctrl+/(小键盘) 折叠当前类中的所有代码

Ctrl+×(小键盘) 展开当前类中的所有代码

Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)

Ctrl+Shift+E 显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)

Ctrl+J  正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)

Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)

Ctrl+Shift+F4 关闭所有打开的Editer

Ctrl+Shift+X  把当前选中的文本全部变味小写

Ctrl+Shift+Y  把当前选中的文本全部变为小写

Ctrl+Shift+F  格式化当前代码

Ctrl+Shift+P 定位到对于的匹配符(譬如{}) (从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)

Alt+Shift+R 重命名 (是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)

Alt+Shift+M 抽取方法 (这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)

Alt+Shift+C 修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)

Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候)

Alt+Shift+F 把Class中的local变量变为field变量 (比较实用的功能)

Alt+Shift+I 合并变量(可能这样说有点不妥Inline)

Alt+Shift+V 移动函数和变量(不怎么常用)

Alt+Shift+Z 重构的后悔药(Undo)

posted @ 2007-05-10 11:15 kangxm 阅读(541) | 评论 (0)编辑 收藏

2007年5月9日 #


一、page 对象
    page对象代表JSP本身,更准确地说它代表JSP被转译后的Servlet,它可以调用Servlet类所定义的方法。
        
二、config 对象
    config 对象里存放着一些Servlet 初始的数据结构。
    config 对象实现于javax.servlet.ServletConfig 接口,它共有下列四种方法:
        public String getInitParameter(name)
        public java.util.Enumeration getInitParameterNames( )
        public ServletContext getServletContext( )
        public Sring getServletName( )

三、request 对象
    request 对象包含所有请求的信息,如:请求的来源、标头、cookies和请求相关的参数值等等。
    request 对象实现javax.servlet.http.HttpServletRequest接口的,所提供的方法可以将它分为四大类:
    1.储存和取得属性方法;
        void setAttribute(String name, Object value)       设定name属性的值为value
        Enumeration getAttributeNamesInScope(int scope)    取得所有scope 范围的属性
        Object getAttribute(String name)                   取得name 属性的值
        void removeAttribute(String name)                  移除name 属性的值
    2.取得请求参数的方法
        String getParameter(String name)                   取得name 的参数值
        Enumeration getParameterNames( )                   取得所有的参数名称
        String [] getParameterValues(String name)          取得所有name 的参数值
        Map getParameterMap( )                             取得一个要求参数的Map
    3.能够取得请求HTTP 标头的方法
        String getHeader(String name)                      取得name 的标头
        Enumeration getHeaderNames()                       取得所有的标头名称
        Enumeration getHeaders(String name)                取得所有name 的标头
        int getIntHeader(String name)                      取得整数类型name 的标头
        long getDateHeader(String name)                    取得日期类型name 的标头
        Cookie [] getCookies( )                            取得与请求有关的cookies
    4.其他的方法
        String getContextPath( )                           取得Context 路径(即站台名称)
        String getMethod( )                                取得HTTP 的方法(GET、POST)
        String getProtocol( )                              取得使用的协议 (HTTP/1.1、HTTP/1.0 )
        String getQueryString( )                           取得请求的参数字符串,不过,HTTP的方法必须为GET
        String getRequestedSessionId( )                    取得用户端的Session ID
        String getRequestURI( )                            取得请求的URL,但是不包括请求的参数字符串
        String getRemoteAddr( )                            取得用户的IP 地址
        String getRemoteHost( )                            取得用户的主机名称
        int getRemotePort( )                               取得用户的主机端口
        String getRemoteUser( )                            取得用户的名称
        void etCharacterEncoding(String    encoding)       设定编码格式,用来解决窗体传递中文的问题

四、response 对象
    response 对象主要将JSP 处理数据后的结果传回到客户端。
    response 对象是实现javax.servlet.http.HttpServletResponse 接口。response对象所提供的方法。
    1.设定表头的方法
        void addCookie(Cookie cookie)                      新增cookie
        void addDateHeader(String name, long date)         新增long类型的值到name标头
        void addHeader(String name, String value)          新增String类型的值到name标头
        void addIntHeader(String name, int value)          新增int类型的值到name标头
        void setDateHeader(String name, long date)         指定long类型的值到name标头
        void setHeader(String name, String value)          指定String类型的值到name标头
        void setIntHeader(String name, int value)          指定int类型的值到name标头
    2.设定响应状态码的方法
        void sendError(int sc)                             传送状态码(status code)
        void sendError(int sc, String msg)                 传送状态码和错误信息
        void setStatus(int sc)                             设定状态码
    3.用来URL 重写(rewriting)的方法    
        String encodeRedirectURL(String    url)            对使用sendRedirect( )方法的URL予以编码

五、out 对象
    out 对象能把结果输出到网页上。
    out主要是用来控制管理输出的缓冲区(buffer)和输出流(output stream)。
        void clear( )                                      清除输出缓冲区的内容
        void clearBuffer( )                                清除输出缓冲区的内容
        void close( )                                      关闭输出流,清除所有的内容
        int getBufferSize( )                               取得目前缓冲区的大小(KB)
        int getRemaining( )                                取得目前使用后还剩下的缓冲区大小(KB)
        boolean isAutoFlush( )                             回传true表示缓冲区满时会自动清除;false表示不会自动清除并且产生异常处理
        
六、session 对象
    session对象表示目前个别用户的会话(session)状况。
    session对象实现javax.servlet.http.HttpSession接口,HttpSession接口所提供的方法
        long getCreationTime()                             取得session产生的时间,单位是毫秒
        String getId()                                     取得session 的ID
        long getLastAccessedTime()                         取得用户最后通过这个session送出请求的时间
        long getMaxInactiveInterval()                      取得最大session不活动的时间,若超过这时间,session 将会失效
        void invalidate()                                  取消session 对象,并将对象存放的内容完全抛弃
        boolean isNew()                                    判断session 是否为"新"的
        void setMaxInactiveInterval(int    interval)       设定最大session不活动的时间,若超过这时间,session 将会失效

七、application对象
    application对象最常被使用在存取环境的信息。
    因为环境的信息通常都储存在ServletContext中,所以常利用application对象来存取ServletContext中的信息。
    application 对象实现javax.servlet.ServletContext 接口,ServletContext接口容器所提供的方法
        int getMajorVersion( )                             取得Container主要的Servlet API版本
        int getMinorVersion( )                             取得Container次要的Servlet API 版本
        String getServerInfo( )                            取得Container的名称和版本
        String getMimeType(String file)                    取得指定文件的MIME 类型
        ServletContext getContext(String uripath)          取得指定Local URL的Application context
        String getRealPath(String path)                    取得本地端path的绝对路径
        void log(String message)                           将信息写入log文件中
        void log(String message, Throwable throwable)      将stack trace 所产生的异常信息写入log文件中

八、pageContext对象
    pageContext对象能够存取其他隐含对象。
    1.pageContext对象存取其他隐含对象属性的方法,此时需要指定范围的参数。
        Object getAttribute(String name, int scope)
        Enumeration getAttributeNamesInScope(int scope)
        void removeAttribute(String name, int scope)
        void setAttribute(String name, Object value, int scope)
    范围参数有四个,分别代表四种范围:PAGE_SCOPE、REQUEST_SCOPE、SESSION_SCOPE、APPLICATION_SCOPE
    2.PageContext对象取得其他隐含对象的方法
        Exception getException( )                          回传目前网页的异常,不过此网页要为error page,
        JspWriter getOut( )                                回传目前网页的输出流,例如:out 
        Object getPage( )                                  回传目前网页的Servlet 实体(instance),例如:page
        ServletRequest getRequest( )                       回传目前网页的请求,例如:request
        ServletResponse getResponse( )                     回传目前网页的响应,例如:response
        ServletConfig getServletConfig( )                  回传目前此网页的ServletConfig 对象,例如:config
        ServletContext getServletContext( )                回传目前此网页的执行环境(context),例如:application
        HttpSession getSession( )                          回传和目前网页有联系的会话(session),例如:session
    3.PageContext对象提供取得属性的方法
        Object getAttribute(String name, int scope)        回传name 属性,范围为scope的属性对象,回传类型为Object
        Enumeration getAttributeNamesInScope(int scope)    回传所有属性范围为scope 的属性名称,回传类型为Enumeration
        int getAttributesScope(String name)                回传属性名称为name 的属性范围
        void removeAttribute(String name)                  移除属性名称为name 的属性对象
        void removeAttribute(String name, int scope)       移除属性名称为name,范围为scope 的属性对象
        void setAttribute(String name, Object value, int scope)        指定属性对象的名称为name、值为value、范围为scope
        Object findAttribute(String name)                  寻找在所有范围中属性名称为name 的属性对象

九、exception对象
    若要使用exception 对象时,必须在page 指令中设定。<%@ page isErrorPage="true" %>才能使用。
    exception提供的三个方法:
        getMessage( )
        getLocalizedMessage( )、
        printStackTrace(new java.io.PrintWriter(out)) 

原文出处:http://www.javaresearch.org/article/68164.htm
posted @ 2007-05-09 10:12 kangxm 阅读(632) | 评论 (3)编辑 收藏

2007年3月16日 #

     摘要: 千万别把JAVA环境变量和TOMCAT的配置方法忘了!!!  阅读全文
posted @ 2007-03-16 02:20 kangxm 阅读(1121) | 评论 (0)编辑 收藏

2007年3月14日 #

     从上周起,公司的电脑一开机诺盾就报:C:\WINDOWS\SYSTEM32\LWIGW.DLL被感染木马:  

2007 - 3 - 14   10 : 19 : 10     文件 C:\WINDOWS\SYSTEM32\LWIGW.DLL: 检测到 木马程序 Trojan - Downloader.Win32.Agent.bbb

2007 - 3 - 14   10 : 20 : 00     文件 C:\WINDOWS\system32\drivers\fpvsy.sys: 检测到 木马程序 Trojan - Downloader.Win32.Agent.bbb

     并且还清除失败(明显杀毒能力太差);工作太忙没顾得上管它;
     

   今天实在是忍受不了了,下了个卡巴斯基开杀,没想到这下杀出毛病来了:

   卡巴斯基一上来就发现了这个病毒,然后提示删除,我点击确定,卡巴又提示我重启后删除,我心想,那就重启呗!只要能杀掉,省
    得它老在这烦我!重启完我就傻了,卡巴又提示有这个病毒,和刚才一样,继续要求重启后删除;就这样不听的循环.........................

   现在的病毒太欺负杀毒软件了!!!!!!!!!!   搞得杀毒软件就只好欺骗我!!!!!!!!

   小样,我就不信治不了你! Google了一下,发现这个木马还蛮牛:

 Trojan / Agent.bbb“代理木马”变种bbb是一个盗取用户机密信息的木马程序。“代理木马”变种bbb运行后,自我
复制到系统目录下,文件名随机生成。修改注册表,实现开机自启。从指定站点下载其它木马,侦听黑客指令,盗取用户机密信息。

    搜了点资料最后将其搞定,以下是我结合各种资料并试验成功的办法(自认为比较简单)


     1、下载一个叫unlocker的工具,它有解锁功能,可以知道你要删除的文件被哪一些程序占用了该目录或文件,并将其解锁,然后就可以正常删掉了!
                 地址:
http://www.skycn.com/soft/22964.html


      2、在杀毒软件提示你被感染病毒的文件目录下找到对应的文件,点击鼠标右键,选择Unlocker解锁,会弹出一个框告诉你当前是哪些程序在使用该文件,点击“全部解锁”即可;

      3、确定所有被感染的文件都解锁后,运行杀毒软件杀毒,一切OK!
            保证不会再被病毒欺负!!!!!

   
            
   

   
   

posted @ 2007-03-14 18:55 kangxm 阅读(3080) | 评论 (6)编辑 收藏

2007年3月12日 #

     摘要: 早上读RSS源,无意间看这个最近很火的Psytopic特别版MBTI测试,狂喜!

很早以前就听说大名鼎鼎的MBTI了,可惜一直没找到可以做的地方!

啥话不说,感受先......

  阅读全文
posted @ 2007-03-12 09:53 kangxm 阅读(8167) | 评论 (7)编辑 收藏

2007年3月8日 #

坚持做一件事情确实不是一件容易的事情!

看看我Blog上的内容就知道了,很久很久没更新自己写的文章了,反而转载却越来越多;

反省一下,客观原因是工作比较忙,其实最主要的还是自己那种惰性思想在作怪!

必须强迫自己坚持写下去!!!!

不是为写blog而写blog,应该是为了培养坚持做某件事情的素质而写blog!!!!

Come On Baby!!!

posted @ 2007-03-08 09:13 kangxm 阅读(692) | 评论 (2)编辑 收藏

2007年3月1日 #

     摘要: 中国人正在上的四个大当  阅读全文
posted @ 2007-03-01 00:15 kangxm 阅读(548) | 评论 (0)编辑 收藏

2007年1月25日 #

     摘要: 可怜的戴尔:戴尔预计无法满足最后期限 摘牌势在必然  阅读全文
posted @ 2007-01-25 16:43 kangxm 阅读(654) | 评论 (0)编辑 收藏

     摘要: 主要是最近Eclipse Plugins装的比较多,对Links方式安装的方便之处感触越来越深.

主推原因: 方便,省事,易迁移.

下面我以Log4E插件为例:( 顺便推荐一下Log4E插件 :-) )  阅读全文
posted @ 2007-01-25 14:29 kangxm 阅读(1421) | 评论 (2)编辑 收藏

2007年1月23日 #

     摘要: vi基本技巧  阅读全文
posted @ 2007-01-23 02:00 kangxm 阅读(1010) | 评论 (0)编辑 收藏

     摘要: Vista的销售价钱,连邦软件商城独家发售的Windows Vista的5个版本  阅读全文
posted @ 2007-01-23 00:28 kangxm 阅读(1158) | 评论 (3)编辑 收藏

2007年1月16日 #

     摘要: DOM是基于平台、语言无关的官方W3C标准。基于树的层次,其优点是可以移植,编程容易,开发人员只需要调用建树的指令。其缺点是加载大文件不理想。 SAX是基于事件模型的,它在解析 XML 文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。类似与流媒体的解析方式,所以在加载大文件时效果不错。 JDOM是想成为 Java 特定文档模型。它简化与 XML 的交互并且比使用 DOM 实现更快。使用的是具体类不使用接口,运用了大量的COllections类,方便程序员。 DOM4J是一个独立的开发结果。是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。推荐使用。  阅读全文
posted @ 2007-01-16 09:04 kangxm 阅读(1022) | 评论 (0)编辑 收藏

2007年1月5日 #

     摘要: 软件开发生命周期包括需求分析、设计、开发、测试、交付部署等各个阶段,以及贯穿在整个开发过程的软件开发项目管理环节,
2006年,在每一个阶段都出现了令人眼花缭乱的技术与应用,同时这些技术还将进一步影响2007年的发展,令人充满期待。  阅读全文
posted @ 2007-01-05 10:56 kangxm 阅读(1018) | 评论 (0)编辑 收藏