存档

2012年3月 的存档

搭建第一个Catalyst应用实例

2012年3月22日 没有评论

记录搭建第一个Catalyst应用实例的步骤。前面安装的Catalyst::Devel中已经包括了用来输出HTML的Template Toolkit,现在需要安装的是Catalyst和它的接口Catalyst::View::TT,

# cpan -i Catalyst::View::TT

根据Catalyst::View::TT的标准,在View目录下生成TT.pm文件:

phillip@athens:~/MyApp$ perl script/myapp_create.pl view TT TT
phillip@athens:~/MyApp$ ls lib/MyApp/View/
TT.pm

获取Catalyst::View::TT的版本信息:

$ perl -MCatalyst::View::TT -e 'print Catalyst::View::TT->VERSION'
0.38

修改Makefile.PL文件,在’require’区域后面加上‘Catalyst::View::TT’:

phillip@athens:~/MyApp$ vim Makefile.PL

修改后的Makefile.PL文件:

#!/usr/bin/env perl
# IMPORTANT: if you delete this file your app will not work as
# expected.  You have been warned.
use inc::Module::Install 1.02;
use Module::Install::Catalyst; # Complain loudly if you don't have
                               # Catalyst::Devel installed or haven't said
                               # 'make dist' to create a standalone tarball.

name 'MyApp';
all_from 'lib/MyApp.pm';

requires 'Catalyst::Runtime' => '5.90011';
requires 'Catalyst::Plugin::ConfigLoader';
requires 'Catalyst::Plugin::Static::Simple';
requires 'Catalyst::Action::RenderView';
requires 'Moose';
requires 'namespace::autoclean';
requires 'Config::General';
# This should reflect the config file format you've chosen
requires 'Catalyst::View::TT' => '0.38';
# See Catalyst::Plugin::ConfigLoader for supported formats
test_requires 'Test::More' => '0.88';
catalyst;

install_script glob('script/*.pl');
auto_install;
WriteAll;

在MyApp/root目录中创建输入的HTML模板,将模板文件命名为’phillip.tt’, 其代码如下:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN">
<html xmlns=" http://www.w3.org/1999/xhtml" xml:lang="zh_ch">
<head>
<title>Phillip的哲学世界</title>
</head>
<body>
<h1>Phillip的哲学世界</h1>
<p>
        哪只球队将获得是今年的意甲冠军? 
        [% word | html %].
</p>
</body>
</html>

现在phillip.tt还不能做任何事,因为没有定义与之关联的应用。下面将生成一个名字为”Phillip”的控制器:

phillip@athens:~/MyApp$ perl script/myapp_create.pl controller Phillip
 exists "/home/phillip/MyApp/script/../lib/MyApp/Controller"
 exists "/home/phillip/MyApp/script/../t"
created "/home/phillip/MyApp/script/../lib/MyApp/Controller/Phillip.pm"
created "/home/phillip/MyApp/script/../t/controller_Phillip.t"

生成在Phillip.pm文件在/lib/MyApp/Controller目录下。

phillip@athens:~/MyApp/lib/MyApp/Controller$ ls
Phillip.pm  Root.pm

修改Phillip.pm,使用前面的phillip.tt模板:

package MyApp::Controller::Phillip;
use Moose;
use namespace::autoclean;

BEGIN {extends 'Catalyst::Controller'; }

=head1 NAME
MyApp::Controller::Phillip - Catalyst Controller

=head1 DESCRIPTION
Catalyst Controller.

=head1 METHODS
=cut
=head2 index
=cut

sub phillip : Global {
        my ( $self, $c, @args ) = @_;
        my $word = $args[0] || 'Barnet';
        $c->stash->{template} = 'phillip.tt';
        $c->stash->{word}= $word;
}

=head1 AUTHOR
phillip,,,

=head1 LICENSE
This library is free software. You can redistribute it and/or modify
it under the same terms as Perl itself.

=cut
__PACKAGE__->meta->make_immutable;
1;

可以使用myapp_test测试一下:

$ perl script/myapp_test.pl /phillip/milan
[debug] Debug messages enabled
[debug] Statistics enabled
[debug] Loaded plugins:
.----------------------------------------------------------------------------.
| Catalyst::Plugin::ConfigLoader  0.30                                       |
'----------------------------------------------------------------------------'

[debug] Loaded dispatcher "Catalyst::Dispatcher"
[debug] Loaded engine "Catalyst::Engine"
[debug] Found home "/home/phillip/MyApp"
[debug] Loaded Config "/home/phillip/MyApp/myapp.conf"
[debug] Loaded components:
.-----------------------------------------------------------------+----------.
| Class                                                           | Type     |
+-----------------------------------------------------------------+----------+
| MyApp::Controller::Phillip                                      | instance |
| MyApp::Controller::Root                                         | instance |
| MyApp::View::TT                                                 | instance |
'-----------------------------------------------------------------+----------'

[debug] Loaded Private actions:
.----------------------+--------------------------------------+--------------.
| Private              | Class                                | Method       |
+----------------------+--------------------------------------+--------------+
| /default             | MyApp::Controller::Root              | default      |
| /end                 | MyApp::Controller::Root              | end          |
| /index               | MyApp::Controller::Root              | index        |
| /phillip/phillip     | MyApp::Controller::Phillip           | phillip      |
'----------------------+--------------------------------------+--------------'

[debug] Loaded Path actions:
.-------------------------------------+--------------------------------------.
| Path                                | Private                              |
+-------------------------------------+--------------------------------------+
| /                                   | /index                               |
| /...                                | /default                             |
| /phillip/...                        | /phillip/phillip                     |
'-------------------------------------+--------------------------------------'

[info] MyApp powered by Catalyst 5.90011
[info] *** Request 1 (1.000/s) [13033] [Thu Mar 22 17:06:34 2012] ***
[debug] Path is "phillip"
[debug] Arguments are "milan"
[debug] "GET" request for "phillip/milan" from "127.0.0.1"
[debug] Rendering template "phillip.tt"
[debug] Response Code: 200; Content-Type: text/html; 
charset=utf-8; Content-Length: 326
[info] Request took 0.052756s (18.955/s)
.------------------------------------------------------------+-----------.
| Action                                                     | Time      |
+------------------------------------------------------------+-----------+
| /phillip/phillip                                           | 0.000292s |
| /end                                                       | 0.046260s |
|  -> MyApp::View::TT->process                               | 0.044756s |
'------------------------------------------------------------+-----------'

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN">
<html xmlns=" http://www.w3.org/1999/xhtml" xml:lang="zh_ch">
<head>
<title>Phillip的哲学世界</title>
</head>
<body>
<h1>Phillip的哲学世界</h1>
<p>
	哪只球队将获得今年的意甲冠军?
	milan.
</p>
</body>
</html>

注意,此时如果在浏览器中访问http://catalyst_ip_or_name:3000/phillip/milan将报错’Page not found’。重新启动Catalyst开发web服务’myapp_server.pl’仍然出现同样的情况。必须要进行编译和安装模块:

phillip@athens:~/MyApp$ perl Makefile.PL
include /home/phillip/MyApp/inc/Module/Install.pm
include inc/Module/Install/Metadata.pm
include inc/Module/Install/Base.pm
include inc/Module/Install/Makefile.pm
Cannot determine perl version info from lib/MyApp.pm
include inc/Module/Install/Catalyst.pm
include inc/Module/Install/Include.pm
include inc/File/Copy/Recursive.pm
*** Module::Install::Catalyst
Please run "make catalyst_par" to create the PAR package!
*** Module::Install::Catalyst finished.
include inc/Module/Install/Scripts.pm
include inc/Module/Install/AutoInstall.pm
include inc/Module/AutoInstall.pm
*** Module::AutoInstall version 1.06
*** Checking for Perl dependencies...
[Core Features]
- Test::More                       ...loaded. (0.98 >= 0.88)
- Catalyst::Runtime                ...loaded. (5.90011 >= 5.90011)
- Catalyst::Plugin::ConfigLoader   ...loaded. (0.30)
- Catalyst::Plugin::Static::Simple ...loaded. (0.29)
- Catalyst::Action::RenderView     ...loaded. (0.16)
- Moose                            ...loaded. (2.0402)
- namespace::autoclean             ...loaded. (0.13)
- Config::General                  ...loaded. (2.50)
- Catalyst::View::TT               ...loaded. (0.38 >= 0.38)
*** Module::AutoInstall configuration finished.
include inc/Module/Install/WriteAll.pm
include inc/Module/Install/Win32.pm
include inc/Module/Install/Can.pm
include inc/Module/Install/Fetch.pm
Writing Makefile for MyApp
Writing MYMETA.yml and MYMETA.json
Writing META.yml
phillip@athens:~/MyApp$ make && make test

注意,make install需要root权限,否则报错:

phillip@athens:~/MyApp$ make install
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Can't create '/usr/local/bin'
Do not have write permissions on '/usr/local/bin'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 at -e line 1
make: *** [pure_site_install] 错误 13

使用sudo安装模块:

phillip@athens:~/MyApp$ sudo make install
[sudo] password for phillip: 
Installing /usr/local/share/perl/5.12.4/MyApp/Controller/Phillip.pm
Installing /usr/local/share/perl/5.12.4/MyApp/root/phillip.tt
Installing /usr/local/man/man3/MyApp::Controller::Phillip.3pm
Appending installation info to /usr/lib/perl/5.12/perllocal.pod

现在,在浏览器中可正常访问http://catalyst_ip_or_name:3000/phillip/milan。如果更新了/home/phillip/MyApp/root/phillip.tt模板,变化的内容即使重新启动Catalyst web服务器也无法显示。修改后可以重新编译,或者直接对’usr/local/share/perl/5.12.4/MyApp/root/phillip.tt’进行修改也可以。

还有一点需要注意的,Catalyst web服务器启动最好使用:

$ perl script/myapp_server.pl -r -d

‘-r’参数将使服务在恰当的时候自动重启,比如当发现Phillip.pm时:

Saw changes to the following files:
 - /usr/local/share/perl/5.12.4/MyApp/Controller/Phillip.pm (create)
Attempting to restart the server
分类: Perl 标签:

安装Catalyst

2012年3月20日 没有评论

下午在Ubuntu上装了Catalyst Web开发框架。从此处下载安装脚本,然后用root执行:

#perl cat-install

如果此时直接运行catalyst.pl,回提示安装Catalyst::Devel。

# catalyst.pl MyApp
To use the Catalyst development tools including catalyst.pl and the
generated script/myapp_create.pl you need Catalyst::Helper, which is
part of the Catalyst-Devel distribution. Please install this via a
vendor package or by running one of -
  perl -MCPAN -e 'install Catalyst::Devel'
  perl -MCPANPLUS -e 'install Catalyst::Devel'
BEGIN failed--compilation aborted at /usr/local/bin/catalyst.pl line 24.

安装Catalyst::Devel。

# perl -MCPAN -e 'install Catalyst::Devel'

使用phillip创建一个具体的实例:

phillip@athens:~$ catalyst.pl MyApp
created "MyApp"
created "MyApp/script"
created "MyApp/lib"
created "MyApp/root"
created "MyApp/root/static"
created "MyApp/root/static/images"
created "MyApp/t"
created "MyApp/lib/MyApp"
created "MyApp/lib/MyApp/Model"
created "MyApp/lib/MyApp/View"
created "MyApp/lib/MyApp/Controller"
created "MyApp/myapp.conf"
created "MyApp/myapp.psgi"
created "MyApp/lib/MyApp.pm"
created "MyApp/lib/MyApp/Controller/Root.pm"
created "MyApp/README"
created "MyApp/Changes"
created "MyApp/t/01app.t"
created "MyApp/t/02pod.t"
created "MyApp/t/03podcoverage.t"
created "MyApp/root/static/images/catalyst_logo.png"
created "MyApp/root/static/images/btn_120x50_built.png"
created "MyApp/root/static/images/btn_120x50_built_shadow.png"
created "MyApp/root/static/images/btn_120x50_powered.png"
created "MyApp/root/static/images/btn_120x50_powered_shadow.png"
created "MyApp/root/static/images/btn_88x31_built.png"
created "MyApp/root/static/images/btn_88x31_built_shadow.png"
created "MyApp/root/static/images/btn_88x31_powered.png"
created "MyApp/root/static/images/btn_88x31_powered_shadow.png"
created "MyApp/root/favicon.ico"
created "MyApp/Makefile.PL"
created "MyApp/script/myapp_cgi.pl"
created "MyApp/script/myapp_fastcgi.pl"
created "MyApp/script/myapp_server.pl"
created "MyApp/script/myapp_test.pl"
created "MyApp/script/myapp_create.pl"
Change to application directory and Run "perl Makefile.PL" to 
make sure your install is complete

按照提示运行‘perl Makefile.PL’完成安装:

phillip@athens:~$ cd MyApp/
phillip@athens:~/MyApp$ perl Makefile.PL 

启动Catalyst的Web服务,便于开发调试:

phillip@athens:~/MyApp$ cd script/
phillip@athens:~/MyApp/script$ perl myapp_server.pl 

在浏览器中打开http://catalyst_web_server_ip_or_name:3000可以显示页面。

分类: Perl 标签:

调整Syntax Highlighter插件

2012年3月20日 没有评论

我选择了Syntax Highlighter for wordpress作为显示代码插件。安装完成后,发现有两个问题。第一个是在代码区右上角有一个绿色的问号区域,点击会链接到Syntax的版权信息。我尊重原作者做出的努力,可是当代码段较少而又出现多次连续代码区域时,一片绿色的问号在视觉效果上感觉较差。我要去掉这个问号。在控制板中编辑该插件配置文件syntax_highlighter.php,将以下代码中的toolbar改为false即可。

var $default_atts = array(
		 'num' => 1
		,'lang' => 'plain'
		,'lang_name' => 'false'
		,'highlight_lines' => ''
		,'collapse' => 'false'
		,'gutter' => 'true'
		,'ruler' => 'false'
		,'toolbar' => 'false'
		,'smart_tabs' => 'true'
		,'tab_size' => '4'
		,'light' => 'false'
		,'auto_link' => 'false'
		,'font_size' => '100%'
		,'encode' => 'false'
		);

第二个问题是在Chrome浏览器中代码区始终有一个滚动条,firefox不会有这种情况。网上有很多解决方法,修改plugin/syntaxhighlisghter/3.0.81/css目录下shCoreDefault.css中的..syntaxhighlighter区域,加上”padding:1px;”就可以了。

.syntaxhighlighter {
  width: 100% !important;
  margin: 1em 0 1em 0 !important;
  position: relative !important;
  overflow: auto !important;
  font-size: 1em !important;
  padding:1px;
}

Perl升级后的问题

2012年3月15日 没有评论

在装好Ubuntu 11.10的机器上配置vnc4server,然后想用本地另外一台机器(Ubuntu)远程控制,在这台机器上安装vnc4server时发现了一个报错:

“debconf: Perl may be unconfigured (Can’t locate Debconf/Log.pm in @INC (@INC contains: /usr/local/lib/perl5/site_perl/5.15.8/i686-linux /usr/local/lib/perl5/site_perl/5.15.8 /usr/local/lib/perl5/5.15.8/i686-linux /usr/local/lib/perl5/5.15.8 .) at (eval 1) line 4.”

提示在@INC中无法找到指定的模块。以前没有发现过这个问题,估计是Perl升级到5.15后的原因。@INC在编译时可以设置,可是我没有找到能一次性设定@INC然后使之永久生效的方法。find找到需要的模块在/usr/share/perl5下,然后把它们拷贝到@INC路径目录下,安装就能顺利完成了。现在可以通过vncviewer远程访问和控制ubuntu 11.10了。

分类: Perl 标签: , ,

使用Unicode::UCD获取Unicode字符信息

2012年3月13日 没有评论

Unicode::UCD可以获取Unicode字符信息。Perl 5.12以上版本包含了此模块,而5.10只有升级到更高的版本才能使用该模块。下面是获取汉字“淮”Unicode信息的例子:

#!/usr/bin/perl
use strict;
use warnings;
use Unicode::UCD 'charinfo';
use charnames ':full';
use Data::Dumper;

my $charinfo = charinfo(ord( "\N{U+6dee}" ));

print Dumper $charinfo;
print "显示汉字 ";
binmode STDOUT, ":utf8";
print "\N{U+6dee}\n";

打印的结果:

$VAR1 = {
  'digit' => '',
  'bidi' => 'L',
  'category' => 'Lo',
  'code' => '6DEE',
  'script' => 'Han',
  'combining' => 0,
  'upper' => '',
  'name' => 'CJK UNIFIED IDEOGRAPH-6DEE',
  'unicode10' => '',
  'decomposition' => '',
  'comment' => '',
  'mirrored' => 'N',
  'lower' => '',
  'numeric' => '',
  'decimal' => '',
  'title' => '',
  'block' => 'CJK Unified Ideographs'
  };
显示汉字 淮

汉字的Unicode字符集可以在此处获取。一些Unicode图形(表情)可以参考这里。注意,如果要在系统中显示该表情图形或文字,必须要确定该表情图形和文字在系统字符映射表中有对应的条目,否则是无法正常显示的。比如笑脸”WHITE SMILING FACE”在字符映射表中有对应的条目,可以打印出来“☺”;而“SMILING CAT FACE WITH OPEN MOUTH”没有对应条目就无法正常显示了。Perl的charnames是访问Unicode集较为方便的接口,“\N“可在运行时编译后面花括号{}中的十六进制数和Unicode名称,比如\N{U+263a}和\N{WHITE SMILING FACE}都可以打印出笑脸。

Perl升级到v5.15.8

2012年3月13日 没有评论

Perl最新的开发版本是今年2月20日放出的5.15.8。参考手册,在Ubuntu上从Perl 5.10升级到这个版本:

1. 下载源码:

# wget http://www.cpan.org/src/5.0/perl-5.15.8.tar.gz
# tar xvf perl-5.15.8.tar.gz

2. 编译

# cd perl-5.15.8
# sh Configure -Dinstallusrbinperl  
# make
# make test
# make install

3.检查

# whereis perl
# perl -v
This is perl 5, version 15, subversion 8 (v5.15.8) built for i686-linux
Copyright 1987-2012, Larry Wall
# /usr/bin/perl -v
This is perl 5, version 15, subversion 8 (v5.15.8) built for i686-linux
Copyright 1987-2012, Larry Wall

-Dinstallusrbinperl使编译后的/usr/bin/perl链接为新版本perl,如果不使用此项,/usr/bin/perl -v 仍然显示为5.10。为了方便起见,最好使用此选项。

顺便升级CPAN:

#perl -MCPAN -e shell
cpan>install Bundle::CPAN
分类: Perl 标签: ,

读书有感

2012年3月12日 没有评论

连续读了五遍《原道训》,每次都有收获。这本书正是现在我想要的。从6年前开始研究《四书集注》,到对日本近代哲学感兴趣,然后是梁启超先生的道德文章,接下来是希腊历史和宗教哲学,然后是西方哲学史,又发现需要研究中国哲学史,过了一段时间又对德国哲学很感兴趣,现在又回到了中国的无为思想。我听凭自己的兴趣爱好任意游荡,加以分别又不加分别。世人皆认为小猴子捡了玉米丢了西瓜不可取,我认为这是过分注重结果的狭隘观点。小猴子经过自己的思考和喜好,选择了喜欢的东西,即便是旁人认为比西瓜要小很多的玉米,又有什么关系呢?悠然方能自得,不然得到的还能算“自己”的吗?

分类: 哲学, 心理 标签:

清除/更改Windows登录密码的方法

2012年3月7日 没有评论

Offline Windows Password & Registry Editor是一款非常强大的免费工具,可以允许使用者清除以及清除后更改Windows系统的登录密码。

此处下载软件,然后烧录成为带启动功能的CD或USB盘(也提供软盘格式,不过软件很少见了)。从CD/USB(或软盘)启动,按系统提示选择或输入Windows系统所在盘和分区位置(如/dev/sda)、文件路径(如Windows\System32\config)及用户名(如Administrator)后,Windows系统的密码将被删除。重启计算机,以刚才选择的用户名(administrator)和空密码即可登录系统。从Windows NT3.5到目前最流行的64位Windows 7,该方法均能适用。需要注意两点:它只能修改,无法用于显示原来的密码;如果系统是XP以及后来的Windows系统,除非知道原来的密码,否则使用原来密码加密过的文件在重置密码后将变为不可读和不可恢复状态。此软件威力巨大,请谨慎使用。

Perl引用的复习

2012年3月6日 没有评论

好久不用Perl,今天被几个引用写法搞得有些晕乎乎的。找到手册,再次复习整理一次。

1.标量引用

my $var = "phillip.hk";
my $var_ref = \$var; # 定义引用
print $$var_ref; # 解除引用,test

2. 数组引用

my @array = (1,2,3);
my $array_ref = \@array; #定义数组引用
print $$array_ref[0]; 
print $array_ref->[0]; #同上句,打印出array第一个元素

3. Hash引用

my %hh = ('phillip.hk' => 1,
                    'www.philliphuang.com' => 2);
my $hash_ref = \%hh; #定义散列引用
print $$hash_ref{'phillip.hk'};
print $hash_ref->{phillip.hk}; #同上句,打印出key为phillip.hk对应的value

4. 子例程引用

sub test{
      my $m = @_;
      print "http://phillip.hk is the $m\n";
}
my $test_ref = \&test;  #定义引用
$test_ref->("best"); #同&test("best")

5. 判断引用类型ref()
如果是引用,则返回引用类型SCALAR,ARRAY,HASH和CODE;否则返回null。

print ref($array_ref);
分类: 科技 标签:

大公司无法留住顶级人才的十大原因

2012年3月2日 没有评论

高科技IT公司和大型集团公司的顶级人才流失现象十分严重。虽然这些公司财大气粗,而且愿意在挽留人才方面花钱,但是实际效果不甚理想。这是什么原因呢?

1.大公司的官僚作风。员工们最痛恨内部的官僚作风。实际上更深层次的原因是,员工们不喜欢各种不合时宜的规章制度和呆板的工作流程。而顶级人才缺乏话语权,他们在抱怨的同时,只能被迫去遵循这些可恶的规章流程。

2.多数项目不能点燃天才们的激情。在大公司中,没有专门的团队会整天围绕着那些最聪明的顶级人才们,去问他们是否他们喜欢手头的项目或者他们是否希望在自己感兴趣的方面对工作做出贡献。人力资源部门往往忙于做其它的事情,而忽视了顶级人才们的实际感受。老板们急功近利,他们对锦上添花之类的事物并不感兴趣。顶级人才们最关注的是自己能在某项领域大有作为,而不是把金钱和权力放在首位。通常情况下,大公司不会特别为这些人提供施展他们抱负的机会。

3.差劲的年度绩效考核。很多公司在年度绩效考核做得很差劲,往往只限于表面形势跑个过场。员工们觉得公司并不关于自己将来的职业规划。如果某君是顶级人才,他为什么一定要留下来?这就是下面说到的第4点。

4.对职业规划的漠不关心。绝大多数的老板心里很清楚,员工们其实对自己整天嚷嚷的五年规划后充满迷茫。可是这个并不能妨碍职业规划成为员工们最关心的话题之一。认真关注员工们的职业规划是大有好处的,它将激发员工们的内在潜能,为公司的发展贡献出更多有趣的意见和建议。如果老板能为员工提供一条可持续发展的光明大道,那么员工们是不会轻易离职的。

5.经营策略。如果公司能为顶级人才们提供能发挥他们才华的机会,并且保持一定的耐心,那么公司将会受到意想不到的巨大回报。遗憾的是,只有很少数的公司这样做。

6.缺乏必要的问责制度或喜欢指手划脚。没有人喜欢别人来干涉自己负责的项目,但是这并不代表公司不需要问责这个项目的进展情况。适当的问责,会让员工们觉得自己受到重视。需要注意的是,问责需要适当的表达方式和技巧,不要演变成令人暗暗厌恶的指手划脚。

7.顶级人才们不喜欢猪头队友。如果想留住顶级人才,那么确保给他们配备聪明的队友。

8.公司的发展视野。公司未来会发展成为什么样子?有没有可以振奋人心的行动计划?顶级人才们对公司未来的发展持有什么样的意见?这些都是需要认真考虑和关注的问题。

9.缺乏开放的心态。最好的员工希望能分享他们的想法,并且认真听取别人的意见。在很多大公司中往往出现相反的情况,有人会故意设置各种壁垒将持有反对意见的人排斥在外。

10.老板是否具备良好的协调能力。如果老板不能有效地听取员工的抱怨以及协调员工之间的矛盾,那会让员工厌烦工作和滋生离开的情绪。

分类: 心理 标签: