竹磬网-邵珠庆の日记 生命只有一次,你可以用它来做些更多伟大的事情–Make the world a little better and easier


811月/180

完全指南:在 Linux 中如何打印和管理打印机

发布在 邵珠庆

Linux 中的打印

虽然现在大量的沟通都是电子化和无纸化的,但是在我们的公司中还有大量的材料需要打印。银行结算单、公用事业帐单、财务和其它报告、以及收益结算单等一些东西还是需要打印的。本教程将介绍在 Linux 中如何使用 CUPS 去打印。

CUPS,是通用 Unix 打印系统Common UNIX Printing System的首字母缩写,它是 Linux 中的打印机和打印任务的管理者。早期计算机上的打印机一般是在特定的字符集和字体大小下打印文本文件行。现在的图形打印机可以打印各种字体和大小的文本和图形。尽管如此,现在你所使用的一些命令,在古老的行式打印守护进程(LPD)技术的历史中仍能找到它们。

本教程将帮你了解 Linux 服务器专业考试(LPIC-1)的第 108 号主题的 108.4 目标。这个目标的权重为 2。

前提条件

为了更好地学习本系列教程,你需要具备基本的 Linux 知识,和使用 Linux 系统实践本教程中的命令的能力,你应该熟悉 GNU 和 UNIX® 命令的使用。有时不同版本的程序输出可能会不同,因此,你的结果可能与本教程中的示例有所不同。

本教程中的示例使用的是 Fedora 27 的系统。

有关打印的一些历史

这一小部分历史并不是 LPI 目标的,但它有助于你理解这个目标的相关环境。

早期的计算机大都使用行式打印机。这些都是击打式打印机,那时,它们使用固定间距的字符和单一的字体来打印文本行。为提升整个系统性能,早期的主机要与慢速的外围设备(如读卡器、卡片穿孔机、和运行其它工作的行式打印机)交叉进行工作。因此就产生了在线的或者假脱机的同步外围操作,这一术语目前在谈到计算机打印时仍然在使用。

在 UNIX 和 Linux 系统上,打印初始化使用的是 BSD(伯克利软件分发版Berkeley Software Distribution)打印子系统,它是由一个作为服务器运行的行式打印守护程序(LPD)组成,而客户端命令如 lpr 是用于提交打印作业。这个协议后来被 IETF 标准化为 RFC 1179 —— 行式打印机守护进程协议

System V 也有一个打印守护程序。它的功能与BSD 的 LPD 守护程序类似,但是它们的命令集不一样。你在后面会经常看到完成相同的任务使用不同选项的两个命令。例如,对于打印文件的命令,伯克利实现版本是 lpr,而 System V 实现版本是 lp

随着打印机技术的进步,在一个页面上混合出现不同字体成为可能,并且可以将图片像文字一样打印。可变间距字体,以及更多先进的打印技术,比如间距和连字符,现在都已经标准化。出现了几种对基本的 lpd/lpr 方法等改进设计,比如 LPRng,下一代的 LPR,以及 CUPS。

许多可以打印图形的打印机,使用 Adobe PostScript 语言进行初始化。一个 PostScript 打印机有一个解释器引擎,它可以解释打印任务中的命令并从这些命令中生成最终的页面。PostScript 经常被用做原始文件(比如一个文本文件或者一个图像文件)和最终格式没有适合的 PostScript 功能的特定打印机之间的中间层。转换这些特定的打印任务,比如将一个 ASCII 文本文件或者一个 JPEG 图像转换为 PostScript,然后再使用过滤器转换 PostScript 到非 PostScript 打印机所需要的最终光栅格式。

现在的便携式文档格式Portable Document Format(PDF),它就是基于 PostScript 的,已经替换了传统的原始 PostScript。PDF 设计为与硬件和软件无关,它封装了要打印的页面的完整描述。你可以查看 以及打印 PDF 文件。

管理打印队列

用户直接打印作业到一个名为打印队列print queue的逻辑实体。在单用户系统中,打印队列和打印机通常是几乎相同的意思。但是,CUPS 允许系统不用连接到一个打印机上,而最终在一个远程系统上的排队打印作业,并且通过使用分类,允许将定向到一个分类的打印作业在该分类第一个可用的打印机上打印。

你可以检查和管理打印队列。对于 CUPS 来说,其中一些命令实现了一些新操作。另外的一些是源于 LPD 的兼容命令,不过现在的一些选项通常是最初的 LPD 打印系统选项的有限子集。

你可以使用 CUPS 的 lpstat 命令去检查队列,以了解打印系统。一些常见选项如下表 1。

< 如显示不全,请左右滑动 >
选项 作用
-a 显示打印机状态
-c 显示打印分类
-p 显示打印状态:enabled 或者 disabled
-s 显示默认打印机、打印机和类。相当于 -d -c -v注意:要指定多个选项,这些选项必须像值一样分隔开。
-v 显示打印机和它们的设备。

表 1. lpstat 命令的选项

你也可以使用 LPD 的 lpc 命令(它可以在 /usr/sbin 中找到)使用它的 status 选项。如果你不想指定打印机名字,将列出所有的队列。列表 1 展示了命令的一些示例。

  1. [ian@atticf27 ~]$ lpstat -d
  2. system default destination: HL-2280DW
  3. [ian@atticf27 ~]$ lpstat -v HL-2280DW
  4. device for HL-2280DW: dnssd://Brother%20HL-2280DW._pdl-datastream._tcp.local/
  5. [ian@atticf27 ~]$ lpstat -s
  6. system default destination: HL-2280DW
  7. members of class anyprint:
  8. HL-2280DW
  9. XP-610
  10. device for anyprint: ///dev/null
  11. device for HL-2280DW: dnssd://Brother%20HL-2280DW._pdl-datastream._tcp.local/
  12. device for XP-610: dnssd://EPSON%20XP-610%20Series._ipp._tcp.local/?uuid=cfe92100-67c4-11d4-a45f-ac18266c48aa
  13. [ian@atticf27 ~]$ lpstat -a XP-610
  14. XP-610 accepting requests since Thu 27 Apr 2017 05:53:59 PM EDT
  15. [ian@atticf27 ~]$ /usr/sbin/lpc status HL-2280DW
  16. HL-2280DW:
  17. printer is on device \'dnssd\' speed -1
  18. queuing is disabled
  19. printing is enabled
  20. no entries
  21. daemon present

列表 1. 显示可用打印队列

这个示例展示了两台打印机 —— HL-2280DW 和 XP-610,和一个分类 anyprint,它允许打印作业定向到这两台打印机中的第一个可用打印机。

在这个示例中,已经禁用了打印到 HL-2280DW 队列,但是打印功能是启用的,这样便于将打印机脱机维护之前可以完成打印队列中的任务。启用还是禁用队列,可以使用 cupsaccept 和 cupsreject 命令来管理。以前它们叫做 accept 和 reject,你或许可能在 /usr/sbin 中找到这些命令,但它们现在都是符号链接到新的命令上了。同样,启用还是禁用打印,你可以使用 cupsenable 和 cupsdisable 命令来管理。在早期版本的 CUPS 中,这些被称为 enable 和 disable,它也许会与 bash shell 内置的 enable 混淆。列表 2 展示了如何去启用打印机 HL-2280DW 上的队列,而禁止它的打印。CUPS 的几个命令支持使用 -r 选项去提供一个该操作的理由。这个理由会在你使用 lpstat 时显示,但是如果你使用的是 lpc 命令则不会显示它。

  1. [ian@atticf27 ~]$ lpstat -a -p HL-2280DW
  2. anyprint accepting requests since Mon 29 Jan 2018 01:17:09 PM EST
  3. HL-2280DW not accepting requests since Thu 27 Apr 2017 05:52:27 PM EDT -
  4. Maintenance scheduled
  5. XP-610 accepting requests since Thu 27 Apr 2017 05:53:59 PM EDT
  6. printer HL-2280DW is idle. enabled since Thu 27 Apr 2017 05:52:27 PM EDT
  7. Maintenance scheduled
  8. [ian@atticf27 ~]$ accept HL-2280DW
  9. [ian@atticf27 ~]$ cupsdisable -r "waiting for toner delivery" HL-2280DW
  10. [ian@atticf27 ~]$ lpstat -p -a
  11. printer anyprint is idle. enabled since Mon 29 Jan 2018 01:17:09 PM EST
  12. printer HL-2280DW disabled since Mon 29 Jan 2018 04:03:50 PM EST -
  13. waiting for toner delivery
  14. printer XP-610 is idle. enabled since Thu 27 Apr 2017 05:53:59 PM EDT
  15. anyprint accepting requests since Mon 29 Jan 2018 01:17:09 PM EST
  16. HL-2280DW accepting requests since Mon 29 Jan 2018 04:03:50 PM EST
  17. XP-610 accepting requests since Thu 27 Apr 2017 05:53:59 PM EDT

列表 2. 启用队列和禁用打印

注意:用户执行这些任务必须经过授权。它可能要求是 root 用户或者其它的授权用户。在 /etc/cups/cups-files.conf 中可以看到 SystemGroup 的条目,cups-files.conf 的 man 页面有更多授权用户组的信息。

管理用户打印作业

现在,你已经知道了一些如何去检查打印队列和类的方法,我将给你展示如何管理打印队列上的作业。你要做的第一件事是,如何找到一个特定打印机或者全部打印机上排队的任意作业。完成上述工作要使用 lpq 命令。如果没有指定任何选项,lpq 将显示默认打印机上的队列。使用 -P 选项和一个打印机名字将指定打印机,或者使用 -a 选项去指定所有的打印机,如下面的列表 3 所示。

  1. [pat@atticf27 ~]$ # As user pat (non-administrator)
  2. [pat@atticf27 ~]$ lpq
  3. HL-2280DW is not ready
  4. Rank Owner Job File(s) Total Size
  5. 1st unknown 4 unknown 6144 bytes
  6. 2nd pat 6 bitlib.h 6144 bytes
  7. 3rd pat 7 bitlib.C 6144 bytes
  8. 4th unknown 8 unknown 1024 bytes
  9. 5th unknown 9 unknown 1024 bytes
  10. [ian@atticf27 ~]$ # As user ian (administrator)
  11. [ian@atticf27 ~]$ lpq -P xp-610
  12. xp-610 is ready
  13. no entries
  14. [ian@atticf27 ~]$ lpq -a
  15. Rank Owner Job File(s) Total Size
  16. 1st ian 4 permutation.C 6144 bytes
  17. 2nd pat 6 bitlib.h 6144 bytes
  18. 3rd pat 7 bitlib.C 6144 bytes
  19. 4th ian 8 .bashrc 1024 bytes
  20. 5th ian 9 .bashrc 1024 bytes

列表 3. 使用 lpq 检查打印队列

在这个示例中,共有五个作业,它们是 4、6、7、8、和 9,并且它是名为 HL-2280DW 的打印机的队列,而不是 XP-610 的。在这个示例中使用 -P 选项,可简单地显示哪个打印机已经准备好,但是没有队列任务。注意,CUPS 的打印机命名,是大小写不敏感的。还要注意的是,用户 ian 提交了同样的作业两次,当一个作业没有第一时间打印时,经常能看到用户的这种动作。

一般情况下,你可能会查看或者维护你自己的打印作业,但是,root 用户或者其它授权的用户通常会去管理其它打印作业。大多数 CUPS 命令都可以使用一个 -E 选项,对 CUPS 服务器与客户端之间的通讯进行加密。

使用 lprm 命令从队列中去删除一个 .bashrc 作业。如果不使用选项,将删除当前的作业。使用 - 选项,将删除全部的作业。要么就如列表 4 那样,指定一个要删除的作业列表。

  1. [[pat@atticf27 ~]$ # As user pat (non-administrator)
  2. [pat@atticf27 ~]$ lprm
  3. lprm: Forbidden
  4. [ian@atticf27 ~]$ # As user ian (administrator)
  5. [ian@atticf27 ~]$ lprm 8
  6. [ian@atticf27 ~]$ lpq
  7. HL-2280DW is not ready
  8. Rank Owner Job File(s) Total Size
  9. 1st ian 4 permutation.C 6144 bytes
  10. 2nd pat 6 bitlib.h 6144 bytes
  11. 3rd pat 7 bitlib.C 6144 bytes
  12. 4th ian 9 .bashrc 1024 bytes

列表 4. 使用 lprm 删除打印作业

注意,用户 pat 不能删除队列中的第一个作业,因为它是用户 ian 的。但是,ian 可以删除他自己的 8 号作业。

另外的可以帮你操作打印队列中的作业的命令是 lp。使用它可以去修改作业属性,比如打印数量或者优先级。我们假设用户 ian 希望他的作业 9 在用户 pat 的作业之前打印,并且希望打印两份。作业优先级的默认值是 50,它的优先级范围从最低的 1 到最高的 100 之间。用户 ian 可以使用 -i-n、以及 -q 选项去指定一个要修改的作业,而新的打印数量和优先级可以如下面的列表 5 所示的那样去修改。注意,使用 -l 选项的 lpq 命令可以提供更详细的输出。

  1. [ian@atticf27 ~]$ lpq
  2. HL-2280DW is not ready
  3. Rank Owner Job File(s) Total Size
  4. 1st ian 4 permutation.C 6144 bytes
  5. 2nd pat 6 bitlib.h 6144 bytes
  6. 3rd pat 7 bitlib.C 6144 bytes
  7. 4th ian 9 .bashrc 1024 bytes
  8. [ian@atticf27 ~]$ lp -i 9 -q 60 -n 2
  9. [ian@atticf27 ~]$ lpq
  10. HL-2280DW is not ready
  11. Rank Owner Job File(s) Total Size
  12. 1st ian 9 .bashrc 1024 bytes
  13. 2nd ian 4 permutation.C 6144 bytes
  14. 3rd pat 6 bitlib.h 6144 bytes
  15. 4th pat 7 bitlib.C 6144 bytes

列表 5. 使用 lp 去改变打印数量和优先级

最后,lpmove 命令可以允许一个作业从一个队列移动到另一个队列。例如,我们可能因为打印机 HL-2280DW 现在不能使用,而想去移动一个作业到另外的队列上。你可以指定一个作业编号,比如 9,或者你可以用一个队列名加一个连字符去限定它,比如,HL-2280DW-0。lpmove 命令的操作要求是授权用户。列表 6 展示了如何去从一个队列移动作业到另外的队列,先是指定打印机和作业 ID 移动,然后是移动指定打印机的所有作业。稍后我们可以去再次检查队列,其中一个作业已经在打印中了。

  1. [ian@atticf27 ~]$ lpmove HL-2280DW-9 anyprint
  2. [ian@atticf27 ~]$ lpmove HL-2280DW xp-610
  3. [ian@atticf27 ~]$ lpq -a
  4. Rank Owner Job File(s) Total Size
  5. active ian 9 .bashrc 1024 bytes
  6. 1st ian 4 permutation.C 6144 bytes
  7. 2nd pat 6 bitlib.h 6144 bytes
  8. 3rd pat 7 bitlib.C 6144 bytes
  9. [ian@atticf27 ~]$ # A few minutes later
  10. [ian@atticf27 ~]$ lpq -a
  11. Rank Owner Job File(s) Total Size
  12. active pat 6 bitlib.h 6144 bytes
  13. 1st pat 7 bitlib.C 6144 bytes

列表 6. 使用 lpmove 移动作业到另外一个打印队列

如果你使用的是 CUPS 之外的打印服务器,比如 LPD 或者 LPRng,大多数的队列管理功能是由 lpc 命令的子命令来处理的。例如,你可以使用 lpc topq 去移动一个作业到队列的顶端。其它的 lpc 子命令包括 disabledownenableholdmoveredirectrelease、和 start。这些子命令在 CUPS 的兼容命令中没有实现。

打印文件

如何去打印创建的作业?大多数图形界面程序都提供了一个打印方法,通常是 文件 菜单下面的选项。这些程序为选择打印机、设置页边距、彩色或者黑白打印、打印数量、选择每张纸打印的页面数(每张纸打印两个页面,通常用于讲义)等等,都提供了图形化的工具。现在,我将为你展示如何使用命令行工具去管理这些功能,然后和图形化实现进行比较。

打印文件最简单的方法是使用 lpr 命令,然后提供一个文件名字。这将在默认打印机上打印这个文件。而 lp 命令不仅可以打印文件,也可以修改打印作业。列表 7 展示了使用这个命令的一个简单示例。注意,lpr 会静默处理这个作业,但是 lp 会显示处理后的作业的 ID。

  1. [ian@atticf27 ~]$ echo "Print this text" > printexample.txt
  2. [ian@atticf27 ~]$ lpr printexample.txt
  3. [ian@atticf27 ~]$ lp printexample.txt
  4. request id is HL-2280DW-12 (1 file(s))

列表 7. 使用 lpr 和 lp 打印

表 2 展示了 lpr 上你可以使用的一些选项。注意, lp 的选项和 lpr 的很类似,但是名字可能不一样;例如,-# 在 lpr 上是相当于 lp 的 -n 选项。查看 man 页面了解更多的信息。

< 如显示不全,请左右滑动 >
选项 作用
-C, -J 或 -T 设置一个作业名字。
-P 选择一个指定的打印机。
-# 指定打印数量。注意这不同于 lp 命令的 -n 选项。
-m 在作业完成时发送电子邮件。
-l 表示打印文件已经为打印做好格式准备。相当于 -o raw
-o 设置一个作业选项。
-p 格式化一个带有阴影标题的文本文件。相关于 -o prettyprint
-q 暂缓(或排队)后面的打印作业。
-r 在文件进入打印池之后,删除文件。

表 2. lpr 的选项

列表 8 展示了一些选项。我要求打印之后给我发确认电子邮件,那个作业被暂缓执行,并且在打印之后删除文件。

  1. [ian@atticf27 ~]$ lpr -P HL-2280DW -J "Ian\'s text file" -#2 -m -p -q -r printexample.txt
  2. [[ian@atticf27 ~]$ lpq -l
  3. HL-2280DW is ready
  4. ian: 1st [job 13 localhost]
  5. 2 copies of Ian\'s text file 1024 bytes
  6. [ian@atticf27 ~]$ ls printexample.txt
  7. ls: cannot access \'printexample.txt\': No such file or directory

列表 8. 使用 lpr 打印

我现在有一个在 HL-2280DW 打印队列上暂缓执行的作业。然后怎么做?lp 命令可以通过使用 -H 的各种选项来暂缓或者投放作业。列表 9 展示了如何投放被暂缓的作业。查看 lp 命令的 man 页面了解其它选项的信息。

  1. [ian@atticf27 ~]$ lp -i 13 -H resume

列表 9. 重启一个暂缓的打印作业

并不是所有的可用打印机都支持相同的选项集。使用 lpoptions 命令去查看一个打印机的常用选项。添加 -l 选项去显示打印机专用的选项。列表 10 展示了两个示例。许多常见的选项涉及到人像/风景打印、页面大小和输出在纸张上的布局。详细信息查看 man 页面。

  1. [ian@atticf27 ~]$ lpoptions -p HL-2280DW
  2. copies=1 device-uri=dnssd://Brother%20HL-2280DW._pdl-datastream._tcp.local/
  3. finishings=3 job-cancel-after=10800 job-hold-until=no-hold job-priority=50
  4. job-sheets=none,none marker-change-time=1517325288 marker-colors=#000000,#000000
  5. marker-levels=-1,92 marker-names=\'Black\ Toner\ Cartridge,Drum\ Unit\'
  6. marker-types=toner,opc number-up=1 printer-commands=none
  7. printer-info=\'Brother HL-2280DW\' printer-is-accepting-jobs=true
  8. printer-is-shared=true printer-is-temporary=false printer-location
  9. printer-make-and-model=\'Brother HL-2250DN - CUPS Gutenprint v5.2.13 Simplified\'
  10. printer-state=3 printer-state-change-time=1517325288 printer-state-reasons=none
  11. printer-type=135188 printer-uri-supported=ipp://localhost/printers/HL-2280DW
  12. sides=one-sided
  13. [ian@atticf27 ~]$ lpoptions -l -p xp-610
  14. PageSize/Media Size: *Letter Legal Executive Statement A4
  15. ColorModel/Color Model: *Gray Black
  16. InputSlot/Media Source: *Standard ManualAdj Manual MultiPurposeAdj MultiPurpose
  17. UpperAdj Upper LowerAdj Lower LargeCapacityAdj LargeCapacity
  18. StpQuality/Print Quality: None Draft *Standard High
  19. Resolution/Resolution: *301x300dpi 150dpi 300dpi 600dpi
  20. Duplex/2-Sided Printing: *None DuplexNoTumble DuplexTumble
  21. StpiShrinkOutput/Shrink Page If Necessary to Fit Borders: *Shrink Crop Expand
  22. StpColorCorrection/Color Correction: *None Accurate Bright Hue Uncorrected
  23. Desaturated Threshold Density Raw Predithered
  24. StpBrightness/Brightness: 0 100 200 300 400 500 600 700 800 900 *None 1100
  25. 1200 1300 1400 1500 1600 1700 1800 1900 2000 Custom.REAL
  26. StpContrast/Contrast: 0 100 200 300 400 500 600 700 800 900 *None 1100 1200
  27. 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700
  28. 2800 2900 3000 3100 3200 3300 3400 3500 3600 3700 3800 3900 4000 Custom.REAL
  29. StpImageType/Image Type: None Text Graphics *TextGraphics Photo LineArt

列表 10. 检查打印机选项

大多数的 GUI 应用程序有一个打印对话框,通常你可以使用 文件 >打印 菜单去选择它。图 1 展示了在 GIMP 中的一个示例,GIMP 是一个图像处理程序。

自动草稿

图 1. 在 GIMP 中打印

到目前为止,我们所有的命令都是隐式指向到本地的 CUPS 打印服务器上。你也可以通过指定 -h 选项和一个端口号(如果不是 CUPS 的默认端口号 631 的话)将打印转向到另外一个系统上的服务器。

CUPS 和 CUPS 服务器

CUPS 打印系统的核心是 cupsd 打印服务器,它是一个运行的守护进程。CUPS 配置文件一般位于 /etc/cups/cupsd.conf/etc/cups 目录也有与 CUPS 相关的其它的配置文件。CUPS 一般在系统初始化期间启动,根据你的发行版不同,它也可能通过位于 /etc/rc.d/init.d 或者 /etc/init.d 目录中的 CUPS 脚本来控制。对于 最新使用 systemd 来初始化的系统,CUPS 服务脚本可能在 /usr/lib/systemd/system/cups.service 中。和大多数使用脚本的服务一样,你可以停止、启动、或者重启守护程序。查看我们的教程:学习 Linux,101:运行级别、引导目标、关闭、和重启动,了解使用初始化脚本的更多信息。

配置文件 /etc/cups/cupsd.conf 包含一些管理参数,比如访问打印系统、是否允许远程打印、本地打印池文件等等。在一些系统上,第二部分单独描述了打印队列,它一般是由配置工具自动生成的。列表 11 展示了一个默认的 cupsd.conf 文件中的一些条目。注意,注释是以 # 字符开头的。默认值通常以注释的方式显示,并且可以通过删除前面的 # 字符去改变默认值。

  1. # Only listen for connections from the local machine.
  2. Listen localhost:631
  3. Listen /var/run/cups/cups.sock
  4. # Show shared printers on the local network.
  5. Browsing On
  6. BrowseLocalProtocols dnssd
  7. # Default authentication type, when authentication is required...
  8. DefaultAuthType Basic
  9. # Web interface setting...
  10. WebInterface Yes
  11. # Set the default printer/job policies...
  12. <Policy default>
  13. # Job/subscription privacy...
  14. JobPrivateAccess default
  15. JobPrivateValues default
  16. SubscriptionPrivateAccess default
  17. SubscriptionPrivateValues default
  18. # Job-related operations must be done by the owner or an administrator...
  19. <Limit Create-Job Print-Job Print-URI Validate-Job>
  20. Order deny,allow
  21. Limit>

列表 11. 默认的 /etc/cups/cupsd.conf 文件的部分内容

可以用在 cupsd.conf 中使用的文件、目录、和用户配置命令,现在都存储在作为替代的 cups-files.conf 中。这是为了防范某些类型的提权攻击。列表 12 展示了 cups-files.conf 文件中的一些条目。注意,正如在文件层次结构标准(FHS)中所期望的那样,打印池文件默认保存在文件系统的 /var/spool 目录中。查看 man 页面了解 cupsd.conf 和 cups-files.conf 配置文件的更多信息。

  1. # Location of the file listing all of the local printers...
  2. #Printcap /etc/printcap
  3. # Format of the Printcap file...
  4. #PrintcapFormat bsd
  5. #PrintcapFormat plist
  6. #PrintcapFormat solaris
  7. # Location of all spool files...
  8. #RequestRoot /var/spool/cups
  9. # Location of helper programs...
  10. #ServerBin /usr/lib/cups
  11. # SSL/TLS keychain for the scheduler...
  12. #ServerKeychain ssl
  13. # Location of other configuration files...
  14. #ServerRoot /etc/cups

列表 12. 默认的 /etc/cups/cups-files.conf 配置文件的部分内容

列表 12 提及了 /etc/printcap 文件。这是 LPD 打印服务器的配置文件的名字,并且一些应用程序仍然使用它去确定可用的打印机和它们的属性。它通常是在 CUPS 系统上自动生成的,因此,你可能没有必要去修改它。但是,如果你在诊断用户打印问题,你可能需要去检查它。列表 13 展示了一个示例。

  1. # This file was automatically generated by cupsd(8) from the
  2. # /etc/cups/printers.conf file. All changes to this file
  3. # will be lost.
  4. HL-2280DW|Brother HL-2280DW:rm=atticf27:rp=HL-2280DW:
  5. anyprint|Any available printer:rm=atticf27:rp=anyprint:
  6. XP-610|EPSON XP-610 Series:rm=atticf27:rp=XP-610:

列表 13. 自动生成的 /etc/printcap

这个文件中的每一行都有一个打印机名字、打印机描述,远程机器(rm)的名字、以及那个远程机器上的远程打印机(rp)。老的 /etc/printcap 文件也描述了打印机的能力。

文件转换过滤器

你可以使用 CUPS 打印许多类型的文件,包括明文的文本文件、PDF、PostScript、和各种格式的图像文件,你只需要提供要打印的文件名,除此之外你再无需向 lpr 或 lp 命令提供更多的信息。这个神奇的壮举是通过使用过滤器来实现的。实际上,这些年来最流行的过滤器就就叫做 magicfilter(神奇的过滤器)。

当打印一个文件时,CUPS 使用多用途因特网邮件扩展(MIME)类型去决定合适的转换过滤器。其它的打印数据包可能使用由 file 命令使用的神奇数字机制。关于 file 或者神奇数的更多信息可以查看它们的 man 页面。

输入文件被过滤器转换成中间层的光栅格式或者 PostScript 格式。一些作业信息,比如打印数量也会被添加进去。数据最终通过一个后端发送到目标打印机。还有一些可以用手动过滤的输入文件的过滤器(如 a2ps 或 dvips)。你可以通过这些过滤器获得特殊格式的结果,或者去处理一些 CUPS 原生并不支持的文件格式。

添加打印机

CUPS 支持多种打印机,包括:

  • 本地连接的并行口和 USB 口打印机
  • 因特网打印协议(IPP)打印机
  • 远程 LPD 打印机
  • 使用 SAMBA 的 Microsoft® Windows® 打印机
  • 使用 NCP 的 Novell 打印机
  • HP Jetdirect 打印机

当系统启动或者设备连接时,现在的大多数系统都会尝试自动检测和自动配置本地硬件。同样,许多网络打印机也可以被自动检测到。使用 CUPS 的 web 管理工具(http://localhost:631 或者 http://127.0.0.1:631)去搜索或添加打印机。许多发行版都包含它们自己的配置工具,比如,在 SUSE 系统上的 YaST。图 2 展示了使用 localhost:631 的 CUPS 界面,图 3 展示了 Fedora 27 上的 GNOME 打印机设置对话框。

自动草稿

图 2. 使用 CUPS 的 web 界面

自动草稿

图 3. Fedora 27 上的打印机设置

你也可以从命令行配置打印机。在配置打印机之前,你需要一些关于打印机和它的连接方式的基本信息。如果是一个远程系统,你还需要一个用户 ID 和密码。

你需要去知道你的打印机使用什么样的驱动程序。不是所有的打印机都支持 Linux,有些打印机在 Linux 上压根就不能使用,或者功能受限。你可以去 OpenPrinting.org 去查看是否有你的特定的打印机的驱动程序。lpinfo 命令也可以帮你识别有效的设备类型和驱动程序。使用 -v 选项去列出支持的设备,使用 -m 选项去列出驱动程序,如列表 14 所示。

  1. [ian@atticf27 ~]$ lpinfo -m | grep -i xp-610
  2. lsb/usr/Epson/epson-inkjet-printer-escpr/Epson-XP-610_Series-epson-escpr-en.ppd.gz
  3. EPSON XP-610 Series, Epson Inkjet Printer Driver (ESC/P-R) for Linux
  4. [ian@atticf27 ~]$ locate "Epson-XP-610_Series-epson-escpr-en.ppd.gz"
  5. /usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-610_Series-epson-escpr-en.ppd.gz
  6. [ian@atticf27 ~]$ lpinfo -v
  7. network socket
  8. network ipps
  9. network lpd
  10. network beh
  11. network ipp
  12. network http
  13. network https
  14. direct hp
  15. serial serial:/dev/ttyS0?baud=115200
  16. direct parallel:/dev/lp0
  17. network smb
  18. direct hpfax
  19. network dnssd://Brother%20HL-2280DW._pdl-datastream._tcp.local/
  20. network dnssd://EPSON%20XP-610%20Series._ipp._tcp.local/?uuid=cfe92100-67c4-11d4-a45f-ac18266c48aa
  21. network lpd://BRN001BA98A1891/BINARY_P1
  22. network lpd://192.168.1.38:515/PASSTHRU

列表 14. 可用的打印机驱动程序

这个 Epson-XP-610_Series-epson-escpr-en.ppd.gz 驱动程序在我的系统上位于 /usr/share/ppd/Epson/epson-inkjet-printer-escpr/ 目录中。

如果你找不到驱动程序,你可以到打印机生产商的网站看看,说不定会有专用的驱动程序。例如,在写这篇文章的时候,Brother 就有一个我的 HL-2280DW 打印机的驱动程序,但是,这个驱动程序在 OpenPrinting.org 上还没有列出来。

如果你收集齐了基本信息,你可以如列表 15 所示的那样,使用 lpadmin 命令去配置打印机。为此,我将为我的 HL-2280DW 打印机创建另外一个实例,以便于双面打印。

  1. [ian@atticf27 ~]$ lpinfo -m | grep -i "hl.*2280"
  2. HL2280DW.ppd Brother HL2280DW for CUPS
  3. lsb/usr/HL2280DW.ppd Brother HL2280DW for CUPS
  4. [ian@atticf27 ~]$ lpadmin -p HL-2280DW-duplex -E -m HL2280DW.ppd \
  5. > -v dnssd://Brother%20HL-2280DW._pdl-datastream._tcp.local/ \
  6. > -D "Brother 1" -o sides=two-sided-long-edge
  7. [ian@atticf27 ~]$ lpstat -a
  8. anyprint accepting requests since Mon 29 Jan 2018 01:17:09 PM EST
  9. HL-2280DW accepting requests since Tue 30 Jan 2018 10:56:10 AM EST
  10. HL-2280DW-duplex accepting requests since Wed 31 Jan 2018 11:41:16 AM EST
  11. HXP-610 accepting requests since Mon 29 Jan 2018 10:34:49 PM EST

列表 15. 配置一台打印机

你可以使用带 -c 选项的 lpadmin 命令去创建一个仅用于双面打印的新分类,而不用为了双面打印去创建一个打印机的副本。

如果你需要删除一台打印机,使用带 -x 选项的 lpadmin 命令。

列表 16 展示了如何去删除打印机和创建一个替代类。

  1. [ian@atticf27 ~]$ lpadmin -x HL-2280DW-duplex
  2. [ian@atticf27 ~]$ lpadmin -p HL-2280DW -c duplex -E -D "Duplex printing" -o sides=two-sided-long-edge
  3. [ian@atticf27 ~]$ cupsenable duplex
  4. [ian@atticf27 ~]$ cupsaccept duplex
  5. [ian@atticf27 ~]$ lpstat -a
  6. anyprint accepting requests since Mon 29 Jan 2018 01:17:09 PM EST
  7. duplex accepting requests since Wed 31 Jan 2018 12:12:05 PM EST
  8. HL-2280DW accepting requests since Wed 31 Jan 2018 11:51:16 AM EST
  9. XP-610 accepting requests since Mon 29 Jan 2018 10:34:49 PM EST

列表 16. 删除一个打印机和创建一个类

你也可以使用 lpadmin 或者 lpoptions 命令去设置各种打印机选项。详细信息请查看 man 页面。

排错

如果你有打印问题,尝试下列的提示:

  • 确保 CUPS 服务器正在运行。你可以使用 lpstat 命令,如果它不能连接到 cupsd 守护程序,它将会报告一个错误。或者,你可以使用 ps -ef 命令在输出中去检查是否有 cupsd。
  • 如果你试着排队一个打印作业而得到一个错误信息,指示打印机不接受这个作业,你可以使用 lpstat -a 或者 lpc status 去检查那个打印机是否接受作业。
  • 如果一个队列中的作业没有打印,使用 lpstat -p 或 lpc status 去检查那个打印机是否接受作业。如前面所讨论的那样,你可能需要将这个作业移动到其它的打印机。
  • 如果这个打印机是远程的,检查它在远程系统上是否存在,并且是可操作的。
  • 检查配置文件,确保特定的用户或者远程系统允许在这个打印机上打印。
  • 确保防火墙允许远程打印请求,是否允许从其它系统到你的系统,或者从你的系统到其它系统的数据包通讯。
  • 验证是否有正确的驱动程序。

正如你所见,打印涉及到你的系统中的几个组件,甚至还有网络。在本教程中,基于篇幅的考虑,我们仅能给你的诊断提供了几个着手点。大多数的 CUPS 系统也有实现我们所讨论的命令行功能的图形界面。一般情况下,这个界面是从本地主机使用浏览器指向 631 端口(http://localhost:631 或 http://127.0.0.1:631)来访问的,如前面的图 2 所示。

你可以通过将 CUPS 运行在前台而不是做为一个守护进程来诊断它的问题。如果有需要,你也可以通过这种方式去测试替代的配置文件。运行 cupsd -h 获得更多信息,或者查看 man 页面。

CUPS 也带有一个访问日志和错误日志。你可以在 cupsd.conf 中使用 LogLevel 语句来改变日志级别。默认情况下,日志是保存在 /var/log/cups 目录。它们可以在浏览器界面(http://localhost:631)下,从 Administration 选项卡中查看。使用不带任何选项的 cupsctl 命令可以显示日志选项。也可以编辑 cupsd.conf 或者使用 cupsctl 去调整各种日志参数。查看 cupsctl 命令的 man 页面了解更多信息。

在 Ubuntu 的 Wiki 页面上的 调试打印问题 页面也是一个非常好的学习的地方。

这就是关于打印和 CUPS 的介绍。

66月/170

MySQL用户权限管理

发布在 邵珠庆

用户权限管理主要有以下作用:
1. 可以限制用户访问哪些库、哪些表
2. 可以限制用户对哪些表执行SELECT、CREATE、DELETE、DELETE、ALTER等操作
3. 可以限制用户登录的IP或域名
4. 可以限制用户自己的权限是否可以授权给别的用户

一、用户授权

mysql> grant all privileges on *.* to 'yangxin'@'%' identified by 'yangxin123456' with grant option;
  • all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。
  • on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。如果我要指定将权限应用到test库的user表中,可以这么写:test.user
  • to:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。比如:”yangxin”@”192.168.0.%”,表示yangxin这个用户只能在192.168.0IP段登录
  • identified by:指定用户的登录密码
  • with grant option:表示允许用户将自己的权限授权给其它用户

可以使用GRANT给用户添加权限,权限会自动叠加,不会覆盖之前授予的权限,比如你先给用户添加一个SELECT权限,后来又给用户添加了一个INSERT权限,那么该用户就同时拥有了SELECT和INSERT权限。

用户详情的权限列表请参考MySQL官网说明:http://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html
权限列表

二、刷新权限

对用户做了权限变更之后,一定记得重新加载一下权限,将权限信息从内存中写入数据库

mysql> flush privileges;

三、查看用户权限

mysql> grant select,create,drop,update,alter on *.* to 'yangxin'@'localhost' identified by 'yangxin0917' with grant option;
mysql> show grants for 'yangxin'@'localhost';

授权信息

四、回收权限

删除yangxin这个用户的create权限,该用户将不能创建数据库和表。

mysql> revoke create on *.* from 'yangxin@localhost';
mysql> flush privileges;

五、删除用户

mysql> select host,user from user;
+---------------+---------+
| host          | user    |
+---------------+---------+
| %             | root    |
| %             | test3   |
| %             | yx      |
| 192.168.0.%   | root    |
| 192.168.0.%   | test2   |
| 192.168.0.109 | test    |
| ::1           | yangxin |
| localhost     | yangxin |
+---------------+---------+
8 rows in set (0.00 sec)
mysql> drop user 'yangxin'@'localhost';

六、用户重命名

shell> rename user 'test3'@'%' to 'test1'@'%';

七、修改密码

1> 更新mysql.user表

mysql> use mysql;
# mysql5.7之前
mysql> update user set password=password('123456') where user='root';
# mysql5.7之后
mysql> update user set authentication_string=password('123456') where user='root';
mysql> flush privileges;

2> 用set password命令

语法:set password for ‘用户名’@’登录地址’=password(‘密码’)

mysql> set password for 'root'@'localhost'=password('123456');

3> mysqladmin

语法:mysqladmin -u用户名 -p旧的密码 password 新密码

mysql> mysqladmin -uroot -p123456 password 1234abcd

注意:mysqladmin位于mysql安装目录的bin目录下

八、忘记密码

1> 添加登录跳过权限检查配置

修改my.cnf,在mysqld配置节点添加skip-grant-tables配置

[mysqld]
skip-grant-tables

2> 重新启动mysql服务

shell> service mysqld restart

3> 修改密码

此时在终端用mysql命令登录时不需要用户密码,然后按照修改密码的第一种方式将密码修改即可。
忘记密码修改过程
注意:mysql库的user表,5.7以下版本密码字段为password,5.7以上版本密码字段为authentication_string

4> 还原登录权限跳过检查配置

将my.cnf中mysqld节点的skip-grant-tables配置删除,然后重新启动服务即可。

265月/170

Nginx使用的php-fpm的两种进程管理方式及优化

发布在 邵珠庆

背景
最近将Wordpress迁移至阿里云。由于自己的服务器是云服务器,硬盘和内存都比较小,所以内存经常不够使,通过Linux命令查看后,发现启动php-fpm进程数有20多个,占用了将近1G的内存,整个服务器才1.5G的内存,最后通过对php-fpm进程数优化解决了此问题,服务器多节省出600M的内存,将php-fpm的优化方法和大家分享下。
备注:目前根据nginx、fpm-php进行了内存优化,详情见相关资料
php-fpm优化

1、php-fpm优化参数介绍
他们分别是:pm、pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers。

pm:表示使用那种方式,有两个值可以选择,就是static(静态)或者dynamic(动态)。
在更老一些的版本中,dynamic被称作apache-like。这个要注意看配置文件的说明。

下面4个参数的意思分别为:
pm.max_children:静态方式下开启的php-fpm进程数量
pm.start_servers:动态方式下的起始php-fpm进程数量
pm.min_spare_servers:动态方式下的最小php-fpm进程数
pm.max_spare_servers:动态方式下的最大php-fpm进程数量

区别:
如果dm设置为 static,那么其实只有pm.max_children这个参数生效。系统会开启设置数量的php-fpm进程。
如果dm设置为 dynamic,那么pm.max_children参数失效,后面3个参数生效。
系统会在php-fpm运行开始 的时候启动pm.start_servers个php-fpm进程,
然后根据系统的需求动态在pm.min_spare_servers和pm.max_spare_servers之间调整php-fpm进程数

2、服务器具体配置
对于我们的服务器,选择哪种执行方式比较好呢?事实上,跟Apache一样,运行的PHP程序在执行完成后,或多或少会有内存泄露的问题。
这也是为什么开始的时候一个php-fpm进程只占用3M左右内存,运行一段时间后就会上升到20-30M的原因了。
对于内存大的服务器(比如8G以上)来说,指定静态的max_children实际上更为妥当,因为这样不需要进行额外的进程数目控制,会提高效率。
因为频繁开关php-fpm进程也会有时滞,所以内存够大的情况下开静态效果会更好。数量也可以根据 内存/30M 得到,比如8GB内存可以设置为100,
那么php-fpm耗费的内存就能控制在 2G-3G的样子。如果内存稍微小点,比如1G,那么指定静态的进程数量更加有利于服务器的稳定。
这样可以保证php-fpm只获取够用的内存,将不多的内存分配给其他应用去使用,会使系统的运行更加畅通。
对于小内存的服务器来说,比如256M内存的VPS,即使按照一个20M的内存量来算,10个php-cgi进程就将耗掉200M内存,那系统的崩溃就应该很正常了。
因此应该尽量地控制php-fpm进程的数量,大体明确其他应用占用的内存后,给它指定一个静态的小数量,会让系统更加平稳一些。或者使用动态方式,
因为动态方式会结束掉多余的进程,可以回收释放一些内存,所以推荐在内存较少的服务器或VPS上使用。具体最大数量根据 内存/20M 得到。
比如说512M的VPS,建议pm.max_spare_servers设置为20。至于pm.min_spare_servers,则建议根据服务器的负载情况来设置,比如服务器上只是部署php环境的话,比较合适的值在5~10之间。

本服务器配置

1、服务器基本信息:
硬盘:数据盘30G、系统盘20G
内存:1.5G
CPU:双核
系统:CentOS 6.3 64位
带宽:独享2M
2、部署的应用
Git、SVN、Apache、Tomcat、PHP、Nginx、Mysql、JDK
3、优化后的参数
pm = dynamic
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8

 

max_children=40 , 每个children平均占用20M-30M内存,children越多,可以同时接受的并发数量越多,一般children的值是网站最高并发数+浮动值,这值再×内存占用,就是你需要用到的内存。
max_requests = N 是指当每个children接受了N次请求以后,就会把自己杀死,然后重新建立一个children。
PV / max_children = 每一个children接受的request次数
比如上面的值是1000,而你定义的是10240,那么fpm要超过10天才能杀死children并重建,这样如果存在内存泄露的话,就会导致进程占用过多的内存而无法释放,从而使fpm的处理能力降低,还会产生一些莫名其妙的错误。
但是如果你把这个值设置的过小,fpm频繁的杀死children并重建,也会导致额外的开销。
最好的优化当然是根据你网站的运行情况,去不断的调试,找到一个平衡点。

1010月/160

一篇文章学会Mysql分区表的管理与维护

发布在 邵珠庆

定义: 

       表的分区指根据可以设置为任意大小的规则,跨文件系统分配单个表的多个部分。实际上,表的不同部分在不同的位置被存储为单独的表。用户所选择的、实现数据分割的规则被称为分区函数,这在MySQL中它可以是模数,或者是简单的匹配一个连续的数值区间或数值列表,或者是一个内部HASH函数,或一个线性HASH函数。

使用场景:

     1.某张表的数据量非常大,通过索引已经不能很好的解决查询性能的问题

     2.表的数据可以按照某种条件进行分类,以致于在查询的时候性能得到很大的提升         

优点:

     1)、对于那些已经失去保存意义的数据,通常可以通过删除与那些数据有关的分区,很容易地删除那些数据。相反地,在某些情况下,添加新数据的过程又可以通过为那些新数据专门增加一个新的分区,来很方便地实现。

    2)、一些查询可以得到极大的优化,这主要是借助于满足一个给定WHERE语句的数据可以只保存在一个或多个分区内,这样在查找时就不用查找其他剩余的分区。因为分区可以在创建了分区表后进行修改,所以在第一次配置分区方案时还不曾这么做时,可以重新组织数据,来提高那些常用查询的效率。

    3)、涉及到例如SUM()和COUNT()这样聚合函数的查询,可以很容易地进行并行处理。这意味着查询可以在每个分区上同时进行,最终结果只需通过总计所有分区得到的结果。 

    4)、通过跨多个磁盘来分散数据查询,来获得更大的查询吞吐量。


     分类:


      

 1.检查你的Mysql是否支持分区

        mysql> SHOW VARIABLES LIKE '%partition%';

       若结果如下,表示你的Mysql支持表分区:

        +-----------------------+-------+

       | Variable_name         | Value |
       +-----------------------+-------+
       | have_partition_engine | YES   |
       +-----------------------+-------+
       1 row in set (0.00 sec)

               RANGE分区表创建方式:

  1. DROP TABLE IF EXISTS `my_orders`;  
  2. CREATE TABLE `my_orders` (  
  3.   `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '表主键',  
  4.   `pid` int(10) unsigned NOT NULL COMMENT '产品ID',  
  5.   `price` decimal(15,2) NOT NULL COMMENT '单价',  
  6.   `num` int(11) NOT NULL COMMENT '购买数量',  
  7.   `uid` int(10) unsigned NOT NULL COMMENT '客户ID',  
  8.   `atime` datetime NOT NULL COMMENT '下单时间',  
  9.   `utime` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '修改时间',  
  10.   `isdel` tinyint(4) NOT NULL DEFAULT '0' COMMENT '软删除标识',  
  11.   PRIMARY KEY (`id`,`atime`)  
  12. ) ENGINE=InnoDB DEFAULT CHARSET=utf8  
  13.   
  14. /*********分区信息**************/  
  15. PARTITION BY RANGE (YEAR(atime))  
  16. (  
  17.    PARTITION p0 VALUES LESS THAN (2016),  
  18.    PARTITION p1 VALUES LESS THAN (2017),  
  19.    PARTITION p2 VALUES LESS THAN MAXVALUE  
  20. );  

        以上是一个简单的订单表,分区字段是atime,根据RANGE分区,这样当你向该表中插入数据的时候,Mysql会根据YEAR(atime)的值进行分区存储。

        检查分区是否创建成功,执行查询语句:

         EXPLAIN PARTITIONS SELECT * FROM `my_orders`

         若成功,结果如下:

        

        性能分析:

        1).创建同样表结构,但没有进行分区的表     

  1. DROP TABLE IF EXISTS `my_order`;  
  2. CREATE TABLE `my_order` (  
  3.   `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '表主键',  
  4.   `pid` int(10) unsigned NOT NULL COMMENT '产品ID',  
  5.   `price` decimal(15,2) NOT NULL COMMENT '单价',  
  6.   `num` int(11) NOT NULL COMMENT '购买数量',  
  7.   `uid` int(10) unsigned NOT NULL COMMENT '客户ID',  
  8.   `atime` datetime NOT NULL COMMENT '下单时间',  
  9.   `utime` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '修改时间',  
  10.   `isdel` tinyint(4) NOT NULL DEFAULT '0' COMMENT '软删除标识',  
  11.   PRIMARY KEY (`id`,`atime`)  
  12. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;  

 

        2).向两张表中插入相同的数据

  1. /**************************向分区表插入数据****************************/  
  2. INSERT INTO my_orders(`pid`,`price`,`num`,`uid`,`atime`) VALUES(1,12.23,1,89757,CURRENT_TIMESTAMP());  
  3. INSERT INTO my_orders(`pid`,`price`,`num`,`uid`,`atime`) VALUES(1,12.23,1,89757,'2016-05-01 00:00:00');  
  4. INSERT INTO my_orders(`pid`,`price`,`num`,`uid`,`atime`) VALUES(1,12.23,1,89757,'2017-05-01 00:00:00');  
  5. INSERT INTO my_orders(`pid`,`price`,`num`,`uid`,`atime`) VALUES(1,12.23,1,89757,'2018-05-01 00:00:00');  
  6. INSERT INTO my_orders(`pid`,`price`,`num`,`uid`,`atime`) VALUES(1,12.23,1,89756,'2015-05-01 00:00:00');  
  7. INSERT INTO my_orders(`pid`,`price`,`num`,`uid`,`atime`) VALUES(1,12.23,1,89756,'2016-05-01 00:00:00');  
  8. INSERT INTO my_orders(`pid`,`price`,`num`,`uid`,`atime`) VALUES(1,12.23,1,89756,'2017-05-01 00:00:00');  
  9. INSERT INTO my_orders(`pid`,`price`,`num`,`uid`,`atime`) VALUES(1,12.23,1,89756,'2018-05-01 00:00:00');  
  10.   
  11. /**************************向未分区表插入数据****************************/  
  12. INSERT INTO my_order(`pid`,`price`,`num`,`uid`,`atime`) VALUES(1,12.23,1,89757,CURRENT_TIMESTAMP());  
  13. INSERT INTO my_order(`pid`,`price`,`num`,`uid`,`atime`) VALUES(1,12.23,1,89757,'2016-05-01 00:00:00');  
  14. INSERT INTO my_order(`pid`,`price`,`num`,`uid`,`atime`) VALUES(1,12.23,1,89757,'2017-05-01 00:00:00');  
  15. INSERT INTO my_order(`pid`,`price`,`num`,`uid`,`atime`) VALUES(1,12.23,1,89757,'2018-05-01 00:00:00');  
  16. INSERT INTO my_order(`pid`,`price`,`num`,`uid`,`atime`) VALUES(1,12.23,1,89756,'2015-05-01 00:00:00');  
  17. INSERT INTO my_order(`pid`,`price`,`num`,`uid`,`atime`) VALUES(1,12.23,1,89756,'2016-05-01 00:00:00');  
  18. INSERT INTO my_order(`pid`,`price`,`num`,`uid`,`atime`) VALUES(1,12.23,1,89756,'2017-05-01 00:00:00');  
  19. INSERT INTO my_order(`pid`,`price`,`num`,`uid`,`atime`) VALUES(1,12.23,1,89756,'2018-05-01 00:00:00');  

        3).主从复制,大约20万条左右(主从复制的数据和真实环境有差距,但是能体现出表分区查询的性能优劣)

 
  1. /**********************************主从复制大量数据******************************/  
  2. INSERT INTO `my_orders`(`pid`,`price`,`num`,`uid`,`atime`) SELECT `pid`,`price`,`num`,`uid`,`atime` FROM `my_orders`;  
  3. INSERT INTO `my_order`(`pid`,`price`,`num`,`uid`,`atime`) SELECT `pid`,`price`,`num`,`uid`,`atime` FROM `my_order`;   

       4).查询测试 

  1. /***************************查询性能分析**************************************/  
  2. SELECT * FROM `my_orders` WHERE `uid`=89757 AND `atime`< CURRENT_TIMESTAMP();  
  3. /****用时0.084s****/  
  4.   
  5. SELECT * FROM `my_order` WHERE `uid`=89757 AND `atime`< CURRENT_TIMESTAMP();  
  6. /****用时0.284s****/  

      通过以上查询可以明显看出进行表分区的查询性能更好,查询所花费的时间更短。

      分析查询过程:

      EXPLAIN PARTITIONS SELECT * FROM `my_orders` WHERE `uid`=89757 AND `atime`< CURRENT_TIMESTAMP();

            

 

      EXPLAIN PARTITIONS SELECT * FROM `my_order` WHERE `uid`=89757 AND `atime`< CURRENT_TIMESTAMP();

              

       

       通过以上结果可以看出,my_orders表查询直接经过p0分区,只扫描了49386行,而my_order表没有进行分区,扫描了196983行,这也是性能得到提升的关键所在。

       当然,表的分区并不是分的越多越好,当表的分区太多时找分区又是一个性能的瓶颈了,建议在200个分区以内。

      LIST分区表创建方式:

 
  1. /*****************创建分区表*********************/  
  2. CREATE TABLE `products` (  
  3. `id`  bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '表主键' ,  
  4. `name`  varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '产品名称' ,  
  5. `metrial`  tinyint UNSIGNED NOT NULL COMMENT '材质' ,  
  6. `weight`  double UNSIGNED NOT NULL DEFAULT 0 COMMENT '重量' ,  
  7. `vol`  double UNSIGNED NOT NULL DEFAULT 0 COMMENT '容积' ,  
  8. `c_id`  tinyint UNSIGNED NOT NULL COMMENT '供货公司ID' ,  
  9. PRIMARY KEY (`id`,`c_id`)  
  10. )ENGINE=InnoDB DEFAULT CHARSET=utf8  
  11.   
  12. /*********分区信息**************/  
  13. PARTITION BY LIST(c_id)  
  14. (  
  15.     PARTITION pA VALUES IN (1,3,11,13),  
  16.     PARTITION pB VALUES IN (2,4,12,14),  
  17.     PARTITION pC VALUES IN (5,7,15,17),  
  18.     PARTITION pD VALUES IN (6,8,16,18),  
  19.     PARTITION pE VALUES IN (9,10,19,20)  
  20. );  

       可以看出,LIST分区和RANGE分区很类似,这里就不做性能分析了,和RANGE很类似。

  

       HASH分区表的创建方式:

 
  1. /*****************分区表*****************/  
  2. CREATE TABLE `msgs` (  
  3.   `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '表主键',  
  4.   `sender` int(10) unsigned NOT NULL COMMENT '发送者ID',  
  5.   `reciver` int(10) unsigned NOT NULL COMMENT '接收者ID',  
  6.   `msg_type` tinyint(3) unsigned NOT NULL COMMENT '消息类型',  
  7.   `msg` varchar(225) NOT NULL COMMENT '消息内容',  
  8.   `atime` int(10) unsigned NOT NULL COMMENT '发送时间',  
  9.   `sub_id` tinyint(3) unsigned NOT NULL COMMENT '部门ID',  
  10.   PRIMARY KEY (`id`,`sub_id`)  
  11. ) ENGINE=InnoDB DEFAULT CHARSET=utf8  
  12. /*********分区信息**************/  
  13. PARTITION BY HASH(sub_id)  
  14. PARTITIONS 10;  

          以上语句代表,msgs表按照sub_id进行HASH分区,一共分了十个区。

 

       Key分区和HASH分区很类似,不再介绍,若想了解可以参考Mysql官方文档进行详细了解。

 

       子分区的创建方式:

 
  1. CREATE TABLE `msgss` (  
  2.   `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '表主键',  
  3.   `sender` int(10) unsigned NOT NULL COMMENT '发送者ID',  
  4.   `reciver` int(10) unsigned NOT NULL COMMENT '接收者ID',  
  5.   `msg_type` tinyint(3) unsigned NOT NULL COMMENT '消息类型',  
  6.   `msg` varchar(225) NOT NULL COMMENT '消息内容',  
  7.   `atime` int(10) unsigned NOT NULL COMMENT '发送时间',  
  8.   `sub_id` tinyint(3) unsigned NOT NULL COMMENT '部门ID',  
  9.   PRIMARY KEY (`id`,`atime`,`sub_id`)  
  10. ) ENGINE=InnoDB DEFAULT CHARSET=utf8  
  11. /*********分区信息**************/  
  12. PARTITION BY RANGE (atime) SUBPARTITION BY HASH (sub_id)   
  13. (  
  14.         PARTITION t0 VALUES LESS THAN(1451577600)  
  15.         (  
  16.             SUBPARTITION s0,  
  17.             SUBPARTITION s1,  
  18.             SUBPARTITION s2,  
  19.             SUBPARTITION s3,  
  20.             SUBPARTITION s4,  
  21.             SUBPARTITION s5  
  22.         ),  
  23.         PARTITION t1 VALUES LESS THAN(1483200000)  
  24.         (  
  25.             SUBPARTITION s6,  
  26.             SUBPARTITION s7,  
  27.             SUBPARTITION s8,  
  28.             SUBPARTITION s9,  
  29.             SUBPARTITION s10,  
  30.             SUBPARTITION s11  
  31.         ),  
  32.         PARTITION t2 VALUES LESS THAN MAXVALUE  
  33.         (  
  34.             SUBPARTITION s12,  
  35.             SUBPARTITION s13,  
  36.             SUBPARTITION s14,  
  37.             SUBPARTITION s15,  
  38.             SUBPARTITION s16,  
  39.             SUBPARTITION s17  
  40.         )  
  41. );  

         检查子分区是否创建成功:

 

        EXPLAIN PARTITIONS SELECT * FROM msgss;

        结果如下图:

          

        

前面已经提过,Mysql支持4种表的分区,即RANGE与LIST、HASH与KEY,其中RANGE和LIST类似,按一种区间进行分区,HASH与KEY类似,是按照某种算法对字段进行分区。

 

       RANGE与LIST分区管理:

       案例:有一个聊天记录表,用户几千左右,已经对表按照用户进行一定粒度的水平分割,现仍然有部分表存储的记录比较多,于是按照下列方式有对表进行了分区,分区的好处是,可以动态改变分区,删除分区后,数据也一同被删除,如聊天记录只保存两年,那么你就可以按照时间进行分区,定期删除两年前的分区,动态创建新的的分区就能做到很好的数据维护。

   

       分区表创建的语句如下:

 
  1. DROP TABLE IF EXISTS `msgss`;  
  2. CREATE TABLE `msgss` (  
  3.   `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '表主键',  
  4.   `sender` int(10) unsigned NOT NULL COMMENT '发送者ID',  
  5.   `reciver` int(10) unsigned NOT NULL COMMENT '接收者ID',  
  6.   `msg_type` tinyint(3) unsigned NOT NULL COMMENT '消息类型',  
  7.   `msg` varchar(225) NOT NULL COMMENT '消息内容',  
  8.   `atime` int(10) unsigned NOT NULL COMMENT '发送时间',  
  9.   `sub_id` tinyint(3) unsigned NOT NULL COMMENT '部门ID',  
  10.   PRIMARY KEY (`id`,`atime`,`sub_id`)  
  11. ) ENGINE=InnoDB DEFAULT CHARSET=utf8  
  12. /*********分区信息**************/  
  13. PARTITION BY RANGE (atime) SUBPARTITION BY HASH (sub_id)   
  14. (  
  15.         PARTITION t0 VALUES LESS THAN(1451577600)  
  16.         (  
  17.             SUBPARTITION s0,  
  18.             SUBPARTITION s1,  
  19.             SUBPARTITION s2,  
  20.             SUBPARTITION s3,  
  21.             SUBPARTITION s4,  
  22.             SUBPARTITION s5  
  23.         ),  
  24.         PARTITION t1 VALUES LESS THAN(1483200000)  
  25.         (  
  26.             SUBPARTITION s6,  
  27.             SUBPARTITION s7,  
  28.             SUBPARTITION s8,  
  29.             SUBPARTITION s9,  
  30.             SUBPARTITION s10,  
  31.             SUBPARTITION s11  
  32.         ),  
  33.         PARTITION t2 VALUES LESS THAN MAXVALUE  
  34.         (  
  35.             SUBPARTITION s12,  
  36.             SUBPARTITION s13,  
  37.             SUBPARTITION s14,  
  38.             SUBPARTITION s15,  
  39.             SUBPARTITION s16,  
  40.             SUBPARTITION s17  
  41.         )  
  42. );  

        上述语句创建了三个按照RANGE划分的主分区,每个主分区下面有六个按照HASH划分的子分区。

 

        插入测试数据:

 
  1. INSERT INTO `msgss`(`sender`,`reciver`,`msg_type`,`msg`,`atime`,`sub_id`) VALUES(1,2,0,'Hello HASH',UNIX_TIMESTAMP(NOW()),1);  
  2. INSERT INTO `msgss`(`sender`,`reciver`,`msg_type`,`msg`,`atime`,`sub_id`) VALUES(1,2,0,'Hello HASH 2',UNIX_TIMESTAMP(NOW()),2);  
  3. INSERT INTO `msgss`(`sender`,`reciver`,`msg_type`,`msg`,`atime`,`sub_id`) VALUES(1,2,0,'Hello HASH 3',UNIX_TIMESTAMP(NOW()),3);  
  4. INSERT INTO `msgss`(`sender`,`reciver`,`msg_type`,`msg`,`atime`,`sub_id`) VALUES(1,2,0,'Hello HASH 10',UNIX_TIMESTAMP(NOW()),10);  
  5. INSERT INTO `msgss`(`sender`,`reciver`,`msg_type`,`msg`,`atime`,`sub_id`) VALUES(1,2,0,'Hello HASH 7',UNIX_TIMESTAMP(NOW()),7);  
  6. INSERT INTO `msgss`(`sender`,`reciver`,`msg_type`,`msg`,`atime`,`sub_id`) VALUES(1,2,0,'Hello HASH 5',UNIX_TIMESTAMP(NOW()),5);  
  7.   
  8. INSERT INTO `msgss`(`sender`,`reciver`,`msg_type`,`msg`,`atime`,`sub_id`) VALUES(1,2,0,'Hello HASH',1451577607,1);  
  9. INSERT INTO `msgss`(`sender`,`reciver`,`msg_type`,`msg`,`atime`,`sub_id`) VALUES(1,2,0,'Hello HASH 2',1451577609,2);  
  10. INSERT INTO `msgss`(`sender`,`reciver`,`msg_type`,`msg`,`atime`,`sub_id`) VALUES(1,2,0,'Hello HASH 3',1451577623,3);  
  11. INSERT INTO `msgss`(`sender`,`reciver`,`msg_type`,`msg`,`atime`,`sub_id`) VALUES(1,2,0,'Hello HASH 10',1451577654,10);  
  12. INSERT INTO `msgss`(`sender`,`reciver`,`msg_type`,`msg`,`atime`,`sub_id`) VALUES(1,2,0,'Hello HASH 7',1451577687,7);  
  13. INSERT INTO `msgss`(`sender`,`reciver`,`msg_type`,`msg`,`atime`,`sub_id`) VALUES(1,2,0,'Hello HASH 5',1451577699,5);  
  14.   
  15. INSERT INTO `msgss`(`sender`,`reciver`,`msg_type`,`msg`,`atime`,`sub_id`) VALUES(1,2,0,'Hello HASH',1514736056,1);  
  16. INSERT INTO `msgss`(`sender`,`reciver`,`msg_type`,`msg`,`atime`,`sub_id`) VALUES(1,2,0,'Hello HASH 2',1514736066,2);  
  17. INSERT INTO `msgss`(`sender`,`reciver`,`msg_type`,`msg`,`atime`,`sub_id`) VALUES(1,2,0,'Hello HASH 3',1514736076,3);  
  18. INSERT INTO `msgss`(`sender`,`reciver`,`msg_type`,`msg`,`atime`,`sub_id`) VALUES(1,2,0,'Hello HASH 10',1514736086,10);  
  19. INSERT INTO `msgss`(`sender`,`reciver`,`msg_type`,`msg`,`atime`,`sub_id`) VALUES(1,2,0,'Hello HASH 7',1514736089,7);  
  20. INSERT INTO `msgss`(`sender`,`reciver`,`msg_type`,`msg`,`atime`,`sub_id`) VALUES(1,2,0,'Hello HASH 5',1514736098,5);  

                  进行分区分析:

 

        EXPLAIN PARTITIONS SELECT * FROM msgss;

        可以检测到分区信息如下:

          

 

         检测分区数据分布:

 
  1. EXPLAIN PARTITIONS SELECT * FROM msgss WHERE `atime`<1451577600;  
  2.   
  3. EXPLAIN PARTITIONS SELECT * FROM msgss WHERE `atime`>1451577600 AND `atime`<1483200000;  
  4.   
  5. EXPLAIN PARTITIONS SELECT * FROM msgss WHERE `atime`>1483200000 AND `atime`<1514736000;  
  6.   
  7. EXPLAIN PARTITIONS SELECT * FROM msgss WHERE `atime`>1514736000;  

        结果:第一条语句只扫描了t0的所有子分区,第二条语句只扫描了t1的所有子分区,第三四条分别只扫描了t2的所有子分区,证明表的分区和数据分布成功。

         需求:目前已经是2017年,需要将2015年所有的聊天记录删除,但是保留2016年的聊天记录,并且2017年的数据也能正常按照分区进行存储。

        实现以上需求,需要两步,第一步删除t0分区,第二步按照新规则重建分区。

        删除分区语句:

        ALTER TABLE `msgss` DROP PARTITION t0;

        重建分区语句:

 
  1. ALTER TABLE `msgss` PARTITION BY RANGE (atime) SUBPARTITION BY HASH (sub_id)   
  2. (  
  3.         PARTITION t0 VALUES LESS THAN(1483200000)  
  4.         (  
  5.             SUBPARTITION s0,  
  6.             SUBPARTITION s1,  
  7.             SUBPARTITION s2,  
  8.             SUBPARTITION s3,  
  9.             SUBPARTITION s4,  
  10.             SUBPARTITION s5  
  11.         ),  
  12.         PARTITION t1 VALUES LESS THAN(1514736000)  
  13.         (  
  14.             SUBPARTITION s6,  
  15.             SUBPARTITION s7,  
  16.             SUBPARTITION s8,  
  17.             SUBPARTITION s9,  
  18.             SUBPARTITION s10,  
  19.             SUBPARTITION s11  
  20.         ),  
  21.         PARTITION t2 VALUES LESS THAN MAXVALUE  
  22.         (  
  23.             SUBPARTITION s12,  
  24.             SUBPARTITION s13,  
  25.             SUBPARTITION s14,  
  26.             SUBPARTITION s15,  
  27.             SUBPARTITION s16,  
  28.             SUBPARTITION s17  
  29.         )  
  30. );  

                    查询发现,15年的数据全部被删除,剩余的数据被重新分区并分布。

48月/150

身为管理者 会讲的六十八个故事

发布在 邵珠庆

 

        一、用人之道
去过庙的人都知道,一进庙门,首先是弥陀佛,笑脸迎客,而在他的北面,则是黑口黑脸的韦陀。但相传在很久以前,他们并不在同一个庙里,而是分别掌管不同的庙。
弥乐佛热情快乐,所以来的人非常多,但他什么都不在乎,丢三拉四,没有好好的管理账务,所以依然入不敷出。而韦陀虽然管账是一把好手,但成天阴着个脸,太过严肃,搞得人越来越少,最后香火断绝。
佛祖在查香火的时候发现了这个问题,就将他们俩放在同一个庙里,由弥乐佛负责公关,笑迎八方客,于是香火大旺。而韦陀铁面无私,锱珠必较,则让他负责财务,严格把关。在两人的分工合作中,庙里一派欣欣向荣景象。
其实在用人大师的眼里,没有废人,正如武功高手,不需名贵宝剑,摘花飞叶即可伤人,关键看如何运用。
二、鹦鹉
一个人去买鹦鹉,看到一只鹦鹉前标:此鹦鹉会两门语言,售价二百元。
另一只鹦鹉前则标道:此鹦鹉会四门语言,售价四百元。
该买哪只呢?两只都毛色光鲜,非常灵活可爱。这人转啊转,拿不定主意。
结果突然发现一只老掉了牙的鹦鹉,毛色暗淡散乱,标价八百元。
这人赶紧将老板叫来:这只鹦鹉是不是会说八门语言?  店主说:不。 这人奇怪了:那为什么又老又丑,又没有能力,会值这个数呢?  店主回答:因为另外两只鹦鹉叫这只鹦鹉老板。
这故事告诉我们,真正的领导人,不一定自己能力有多强,只要懂信任,懂放权,懂珍惜,就能团结比自己更强的力量,从而提升自己的身价。
相反许多能力非常强的人却因为过于完美主义,事必躬亲,什么人都不如自己,最后只能做最好的攻关人员,销售代表,成不了优秀的领导人。
三、袋鼠与笼子
一天动物园管理员发现袋鼠从笼子里跑出来了,于是开会讨论,一致认为是笼子的高度过低。所以他们决定将笼子的高度由原来的10米加高到20米。结果第二天他们发现袋鼠还是跑到外面来,所以他们又决定再将高度加高到30米。
没想到隔天居然又看到袋鼠全跑到外面,于是管理员们大为紧张,决定一不做二不休,将笼子的高度加高到100米。
一天长颈鹿和几只袋鼠们在闲聊,"你们看,这些人会不会再继续加高你们的笼子?"长颈鹿问。"很难说。"袋鼠说∶"如果他们再继续忘记关门的话!"
管理心得:事有"本末"、"轻重"、"缓急",关门是本,加高笼子是末,舍本而逐末,当然就不得要领了。管理是什么?管理就是先分析事情的主要矛盾和次要矛盾,认清事情的"本末"、"轻重"、"缓急",然后从重要的方面下手。
四、扁鹊的医术
魏文王问名医扁鹊说:"你们家兄弟三人,都精于医术,到底哪一位最好呢?"
扁鹊答:"长兄最好,中兄次之,我最差。"
文王再问:"那么为什么你最出名呢?"
扁鹊答:"长兄治病,是治病于病情发作之前。由于一般人不知道他事先能铲除病因,所以他的名气无法传出去;中兄治病,是治病于病情初起时。一般人以为他只能治轻微的小病,所以他的名气只及本乡里。而我是治病于病情严重之时。一般人都看到我在经脉上穿针管放血、在皮肤上敷药等大手术,所以以为我的医术高明,名气因此响遍全国。"

管理心得:事后控制不如事中控制,事中控制不如事前控制,可惜大多数的事业经营者均未能体会到这一点,等到错误的决策造成了重大的损失才寻求弥补。而往往是即使请来了名气很大的"空降兵",结果于事无补。
五、曲突徒薪
有位客人到某人家里做客,看见主人家的灶上烟囱是直的,旁边又有很多木材。客人告诉主人说,烟囱要改曲,木材须移去,否则将来可能会有火灾,主人听了没有作任何表示。
不久主人家里果然失火,四周的邻居赶紧跑来救火,最后火被扑灭了,于是主人烹羊宰牛,宴请四邻,以酬谢他们救火的功劳,但并没有请当初建议他将木材移走,烟囱改曲的人。
有人对主人说:"如果当初听了那位先生的话,今天也不用准备筵席,而且没有火灾的损失,现在论功行赏,原先给你建议的人没有被感恩,而救火的人却是座上客,真是很奇怪的事呢!"主人顿时省悟,赶紧去邀请当初给予建议的那个客人来吃酒。
管理心得:一般人认为,足以摆平或解决企业经营过程中的各种棘手问题的人,就是优秀的管理者,其实这是有待商榷的,俗话说:"预防重于治疗",能防患于未然之前,更胜于治乱于已成之后,由此观之,企业问题的预防者,其实是优于企业问题的解决者
六、救人

在一场激烈的战斗中,上尉忽然发现一架敌机向阵地俯冲下来。照常理,发现敌机俯冲时要毫不犹豫地卧倒。可上尉并没有立刻卧倒,他发现离他四五米远处有一个小战士还站在哪儿。他顾不上多想
,一个鱼跃飞身将小战士紧紧地压在了身下。此时一声巨响,飞溅起来的泥土纷纷落在他们的身上。上尉拍拍身上的尘土,回头一看,顿时惊呆了:刚才自己所处的那个位置被炸成了一个大坑。
七、出门
古时候,有两个兄弟各自带着一只行李箱出远门。一路上,重重的行李箱将兄弟俩都压得喘不过气来。他们只好左手累了换右手,右手累了又换左手。忽然,大哥停了下来,在路边买了一根扁担,将两个行李箱一左一右挂在扁担上。他挑起两个箱子上路,反倒觉得轻松了很多。
把这两个故事联系在一起也许有些牵强,但他们确实有着惊人的相似之处:故事中的小战士和弟弟是幸运的,但更加幸运的是故事中的上尉和大哥,因为他们在帮助别人的同时也帮助了自己!
管理心得:在我们人生的大道上,肯定会遇到许许多多的困难。但我们是不是都知道,在前进的道路上,搬开别人脚下的绊脚石,有时恰恰是为自己铺路!
八、鱼王的儿子
有个渔人有着一流的捕鱼技术,被人们尊称为"渔王"。然而"渔王"年老的时候非常苦恼,因为他的三个儿子的渔技都很平庸。
于是个经常向人诉说心中的苦恼:"我真不明白,我捕鱼的技术这么好,我的儿子们为什么这么差?我从他们懂事起就传授捕鱼技术给他们,从最基本的东西教起,告诉他们怎样织网最容易捕捉到鱼,怎样划船最不会惊动鱼,怎样下网最容易请鱼入瓮。他们长大了,我又教他们怎样识潮汐,辨鱼汛......凡是我长年辛辛苦苦总结出来的经验,我都毫无保留地传授给了他们,可他们的捕鱼技术竟然赶不上技术比我差的渔民的儿子!"
一位路人听了他的诉说后,问:"你一直手把手地教他们吗?"
"是的,为了让他们得到一流的捕鱼技术,我教得很仔细很耐心。"
"他们一直跟随着你吗?"
"是的,为了让他们少走弯路,我一直让他们跟着我学。"
路人说:"这样说来,你的错误就很明显了。你只传授给了他们技术,却没传授给他们教训,对于才能来说,没有教训与没有经验一样,都不能使人成大器!"
九、河边的苹果
一位老和尚,他身边聚拢着一帮虔诚的弟子。这一天,他嘱咐弟子每人去南山打一担柴回来。弟子们匆匆行至离山不远的河边,人人目瞪口呆。只见洪水从山上奔泻而下,无论如何也休想渡河打柴了。无功而返,弟子们都有些垂头丧气。唯独一个小和尚与师傅坦然相对。师傅问其故,小和尚从怀中掏出一个苹果,递给师傅说,过不了河,打不了柴,见河边有棵苹果树,我就顺手把树上唯一的一个苹果摘来了。后来,这位小和尚成了师傅的衣钵传人。
世上有走不完的路,也有过不了的河。过不了的河掉头而回,也是一种智慧。但真正的智慧还要在河边做一件事情:放飞思想的风筝,摘下一个"苹果"。历览古今,抱定这样一种生活信念的人,最终都实现了人生的突围和超
十、右手握左手
桌上流行一首顺口溜:握着老婆的手,好像右手握左手。
每当有人念出:熟悉的或不熟悉的一桌子人便会意地放声笑起来,气氛立刻就轻松了。当然,这是基于人家对该顺口溜的一致理解——感觉准确,描述到位。
有一天在餐桌上有人又念起这段顺口溜,男人们照例笑得起劲。
后来发现餐桌上的一位女人没笑。男人们忙说闹着玩别当真。没想到女人认真地说:最妙的就是这"右手握左手"。第一,左手是最可以被右手信赖的;第二,左手和右手彼此都是自己的;第三,别的手任怎么叫你愉悦兴奋魂飞魄散,过后都是可以甩手的,只有左手,甩开了你就残缺了,是不是?一桌子男人都佩服,称赞女人的理解深刻而独到,妇人淡淡地说:有什么深刻而独到,不妨回去念给你们各自的老婆听听,看她们说些什么。
男人当中有胆子大的果然回去试探老婆,果然老婆们的理解均与餐桌上的女士相同。
她们都是左手,男人们当然要以左手计。
而他们都是右手,他们当然作右手想
十一、抉择
一个农民从洪水中救起了他的妻子,他的孩子却被淹死了。
事后,人们议论纷纷。有的说他做得对,因为孩子可以再生一个,妻子却不能死而复活。有的说他做错了,因为妻子可以另娶一个,孩子却不能死而复活。
我听了人们的议论,也感到疑惑难决:如果只能救活一人,究竟应该救妻子呢,还是救孩子?
于是我去拜访那个农民,问他当时是怎么想的。
他答道:"我什么也没想。洪水袭来,妻子在我身过,我抓住她就往附近的山坡游。当我返回时,孩子已经被洪水冲走了。"
归途上,我琢磨着农民的话,对自己说:所谓人生的抉择不少便是如此。
十二、简单道理
从前,有两个饥饿的人得到了一位长者的恩赐:一根鱼竿和一篓鲜活硕大的鱼。其中,一个人要了一篓鱼,另一个人要了一根鱼竿,于是他们分道扬镳了。得到鱼的人原地就用干柴搭起篝火煮起了鱼,他狼吞虎咽,还没有品出鲜鱼的肉香,转瞬间,连鱼带汤就被他吃了个精光,不久,他便饿死在空空的鱼篓旁。另一个人则提着鱼竿继续忍饥挨饿,一步步艰难地向海边走去,可当他已经看到不远处那片蔚蓝色的海洋时,他浑身的最后一点力气也使完了,他也只能眼巴巴地带着无尽的遗憾撒手人间。
又有两个饥饿的人,他们同样得到了长者恩赐的一根鱼竿和一篓鱼。只是他们并没有各奔东西,而是商定共同去找寻大海,他俩每次只煮一条鱼,他们经过遥远的跋涉,来到了海边,从此,两人开始了捕鱼为生的日子,几年后,他们盖起了房子,有了各自的家庭、子女,有了自己建造的渔船,过上了幸福安康的生活。
一个人只顾眼前的利益,得到的终将是短暂的欢愉;一个人目标高远,但也要面对现实的生活。只有把理想和现实有机结合起来,才有可能成为一个成功之人。有时候,一个简单的道理,却足以给人意味深长的生命启示。
十三、并不是你想象中那
两个旅行中的天使到一个富有的家庭借宿。这家人对他们并不友好,并且拒绝让他们在舒适的客人卧室过夜,而是在冰冷的地下室给他们找了一个角落。当他们铺床时,较老的天使发现墙上有一个洞,就顺手把它修补好了。年轻的天使问为什么,老天使答到:"有些事并不像它看上去那样。"
第二晚,两人又到了一个非常贫穷的农家借宿。主人夫妇俩对他们非常热情,把仅有的一点点食物拿出来款待客人,然后又让出自己的床铺给两个天使。第二天一早,两个天使发现农夫和他的妻子在哭泣,他们唯一的生活来源——一头奶牛死了。年轻的天使非常愤怒,他质问老天使为什么会这样,第一个家庭什么都有,老天使还帮助他们修补墙洞,第二个家庭尽管如此贫穷还是热情款待客人,而老天使却没有阻止奶牛的死亡。
"有些事并不像它看上去那样。"老天使答道,"当我们在地下室过夜时,我从墙洞看到墙里面堆满了金块。因为主人被贪欲所迷惑,不愿意分享他的财富,所以我把墙洞填上了。昨天晚上,死亡之神来召唤农夫的妻子,我让奶牛代替了她。所以有些事并不像它看上去那样。"
有些时候事情的表面并不是它实际应该的样子。如果你有信念,你只需要坚信付出总会得到回报。你可能不会发现,直到后来......
十四、养牛之道
我们旅行到乡间,看到一位老农把喂牛的草料铲到一间小茅屋的屋檐上,不免感到奇怪,于是就问道:
"老公公,你为什么不把喂牛的草放在地上,让它吃?"
老农说:"这种草草质不好,我要是放在地上它就不屑一顾;但是我放到让它勉强可够得着的屋檐上,它会努力去吃,直到把全部草料吃个精光。"
十五、爱人之心
这是发生在英国的一个真实故事。
有位孤独的老人,无儿无女,又体弱多病。他决定搬到养老院去。老人宣布出售他漂亮的住宅。购买者闻讯蜂拥而至。住宅底价8万英镑,但人们很快就将它炒到了10万英镑。价钱还在不断攀升。老人深陷在沙发里,满目忧郁,是的,要不是健康情形不行,他是不会卖掉这栋陪他度过大半生的住宅的。
一个衣着朴素的青年来到老人眼前,弯下腰,低声说:"先生,我也好想买这栋住宅,可我只有1万英镑。可是,如果您把住宅卖给我,我保证会让您依旧生活在这里,和我一起喝茶,读报,散步,天天都快快乐乐的——相信我,我会用整颗心来照顾您!"
老人颔首微笑,把住宅以1万英镑的价钱卖给了他。
完成梦想,不一定非得要冷酷地厮杀和欺诈,有时,只要你拥有一颗爱人之心就可以了。
十六、给予
有个老木匠准备退休,他告诉老板,说要离开建筑行业,回家与妻子儿女享受天伦之乐。
老板舍不得他的好工人走,问他是否能帮忙再建一座房子,老木匠说可以。但是大家后来都看得出来,他的心已不在工作上,他用的是软料,出的是粗活。房子建好的时候,老板把大门的钥匙递给他。
"这是你的房子,"他说,"我送给你的礼物。"
他震惊得目瞪口呆,羞愧得无地自容。如果他早知道是在给自己建房子,他怎么会这样呢?现在他得住在一幢粗制滥造的房子里!
我们又何尝不是这样。我们漫不经心地"建造"自己的生活,不是积极行动,而是消极应付,凡事不肯精益求精,在关键时刻不能尽最大努力。等我们惊觉自己的处境,早已深困在自己建造的"房子"里了。把你当成那个木匠吧,想想你的房子,每天你敲进去一颗钉,加上去一块板,或者竖起一面墙,用你的智慧好好建造吧!你的生活是你一生唯一的创造,不能抹平重建,即使只有一天可活,那一天也要活得优美、高贵,墙上的铭牌上写着:"生活是自己创造的。"
十七、提醒自我
有个老太太坐在马路边望着不远处的一堵高墙,总觉得它马上就会倒塌,见有人向墙走过去,她就善意地提醒道:"那堵墙要倒了,远着点走吧。"被提醒的人不解地看着她大模大样地顺着墙根走过去了——那堵墙没有倒。老太太很生气:"怎么不听我的话呢?!"又有人走来,老太太又予以劝告。三天过去了,许多人在墙边走过去,并没有遇上危险。第四天,老太太感到有些奇怪,又有些失望,不由自主便走到墙根下仔细观看,然而就在此时,墙倒了,老太太被掩埋在灰尘砖石中,气绝身亡。
提醒别人时往往很容易,很清醒,但能做到时刻清醒地提醒自己却很难。所以说,许多危险来源于自身,老太太的悲哀便因此而生
十八、窗
有个太太多年来不断抱怨对面的太太很懒惰,"那个女人的衣服永远洗不干净,看,她晾在外院子里的衣服,总是有斑点,我真的不知道,她怎么连洗衣服都洗成那个样子......"
直到有一天,有个明察秋毫的朋友到她家,才发现不是对面的太太衣服洗不干净。细心的朋友拿了一块抹布,把这个太太的窗户上的灰渍抹掉,说:"看,这不就干净了吗?"
原来,是自己家的窗户脏了。
十九、习惯与自然
一根小小的柱子,一截细细的链子,拴得住一头千斤重的大象,这不荒谬吗?可这荒谬的场景在印度和秦国随处可见。那些驯象人,在大象还是小象的时候,就用一条铁链将它绑在水泥柱或钢柱上,无论小象怎么挣扎都无法挣脱。小象渐渐地习惯了不挣扎,直到长成了大象,可以轻而易举地挣脱链子时,也不挣扎。
驯虎人本来也像驯象人一样成功,他让小虎从小吃素,直到小虎长大。老虎不知肉味,自然不会伤人。驯虎人的致命错误在于他摔了交之后让老虎舔净他流在地上的血,老虎一舔不可收,终于将驯虎人吃了。
小象是被链子绑住,而大象则是被习惯绑住。
虎曾经被习惯绑住,而驯虎人则死于习惯(他已经习惯于他的老虎不吃人)。
习惯几乎可以绑住一切,只是不能绑住偶然。比如那只偶然尝了鲜血的老虎。
二十、留个缺口给别人
一位著名企业家在作报告,一位听众问:"你在事业上取得了巨大的成功,请问,对你来说,最重要的是什么?"
企业家没有直接回答,他拿起粉笔在黑板上画了一个圈,只是并没有画圆满,留下一个缺口。他反问道:"这是什么?""零"、"圈"、"未完成的事业"、"成功",台下的听众七嘴八舌地答道。
他对这些回答未置可否:"其实,这只是一个未画完整的句号。你们问我为什么会取得辉煌的业绩,道理很简单:我不会把事情做得很圆满,就像画个句号,一定要留个缺口,让我的下属去填满它。"
留个缺口给他人,并不说明自己的能力不强。实际上,这是一种管理的智慧,是一种更高层次上带有全局性的圆满。
给猴子一棵树,让它不停地攀登;给老虎一座山,让它自由纵横。也许,这就是企业管理用人的最高境界。
二十一、马
马,本来自由自在的在山间撒野,渴了喝点山泉,累了就睡在地上晒太阳,无忧无虑。可是自从有了伯乐,马的命运就改变了,给它的头戴上笼辔,在它的背上置放鞍具,拴着它,马的死亡率已经是十之二三了,然后再逼着它运输东西,强迫它日行千里,在它的脚上钉上铁掌,马的死亡率就过半了。马本来就是毫无规矩毫无用处的动物,让它吸取日月之精化,天地之灵气,无用无为,还得以享尽天年,教化它,让它懂得礼法,反而害了它的生命。
人何尝不是如此呢?在规矩的约束下我们是否也丧失了本我,成天遵循别人制定的礼义,逼迫自己去做不愿意做的事情,有限的生命还剩下多少呢?
二十二、所长无用
有个鲁国人擅长编草鞋,他妻子擅长织白绢。他想迁到越国去。友人对他说:"你到越国去,一定会贫穷的。""为什么?""草鞋,是用来穿着走路的,但越国人习惯于赤足走路;白绢,是用来做帽子的,但越国人习惯于披头散发。凭着你的长处,到用不到你的地方去,这样,要使自己不贫穷,难道可能吗?"
这个故事告诉人们:一个人要发挥其专长,就必须适合社会环境需要。如果脱离社会环境的需要,其专长也就失去了价值。因此,我们要根据社会得需要,决定自己的行动,更好去发挥自己的专长。
二十三、佛塔上的老鼠
一只四处漂泊的老鼠在佛塔顶上安了家。
佛塔里的生活实在是幸福极了,它既可以在各层之间随意穿越,又可以享受到丰富的供品。它甚至还享有别人所无法想象的特权,那些不为人知的秘笈,它可以随意咀嚼;人们不敢正视的佛像,它可以自由休闲,兴起之时,甚至还可以在佛像头上留些排泄物。
每当善男信女们烧香叩头的时候,这只老鼠总是看着那令人陶醉的烟气,慢慢升起,它猛抽着鼻子,心中暗笑:"可笑的人类,膝盖竟然这样柔软,说跪就跪下了!"
有一天,一只饿极了的野猫闯了进来,它一把将老鼠抓住。
"你不能吃我!你应该向我跪拜!我代表着佛!"这位高贵的俘虏抗议道。
"人们向你跪拜,只是因为你所占的位置,不是因为你!"
野猫讥讽道,然后,它像掰开一个汉堡包那样把老鼠掰成了两半。
二十四、钢玻璃杯的故事
一个农民,初中只读了两年,家里就没钱继续供他上学了。他辍学回家,帮父亲耕种三亩薄田。在他19岁时,父亲去世了,家庭的重担全部压在了他的肩上。他要照顾身体不好的母亲,还有一位瘫痪在床的祖母。
八十年代,农田承包到户。他把一块水洼挖成池塘,想养鱼。但乡里的干部告诉他,水田不能养鱼,只能种庄稼,他只好又把水塘填平。这件事成了一个笑话,在别人的眼里,他是一个想发财但有非常愚蠢的人。
听说养鸡能赚钱,他向亲戚借了500元钱,养起了鸡。但是一场洪水后,鸡得了鸡瘟,几天内全部死光。500元对别人来说可能不算什么,对一个只靠三亩薄田生活的家庭而言,不啻天文数字。他的母亲受不了这个刺激,竟然忧郁而死。
他后来酿过酒,捕过鱼,甚至还在石矿的悬崖上帮人打过炮眼......可都没有赚到钱。
35岁的时候,他还没有娶到媳妇。即使是离异的有孩子的女人也看不上他。因为他只有一间土屋,随时有可能在一场大雨后倒塌。娶不上老婆的男人,在农村是没有人看得起的。
但他还想搏一搏,就四处借钱买一辆手扶拖拉机。不料,上路不到半个月,这辆拖拉机就载着他冲入一条河里。他断了一条腿,成了瘸子。而那拖拉机,被人捞起来,已经支离破碎,他只能拆开它,当作废铁卖。
几乎所有的人都说他这辈子完了。
但是后来他却成了我所在的这个城市里的一家公司的老总,手中有两亿元的资产。现在,许多人都知道他苦难的过去和富有传奇色彩的创业经历。许多媒体采访过他,许多报告文学描述过他。但我只记得这样一个情节——
记者问他:"在苦难的日子里,你凭什么一次又一次毫不退缩?"
他坐在宽大豪华的老板台后面,喝完了手里的一杯水。然后,他把玻璃杯子握在手里,反问记者:"如果我松手,这只杯子会怎样?"
记者说:"摔在地上,碎了。"
"那我们试试看。"他说。
他手一松,杯子掉到地上发出清脆的声音,但并没有破碎,而是完好无损。他说:"即使有10个人在场,他们都会认为这只杯子必碎无疑。但是,这只杯子不是普通的玻璃杯,而是用玻璃钢制作的。"
于是,我记住了这段经典绝妙的对话。这样的人,即使只有一口气,他也会努力去拉住成功的手,除非上苍剥夺了他的生命......
二十五、机会
A在合资公司做白领,觉得自己满腔抱负没有得到上级的赏识,经常想:如果有一天能见到老总,有机会展示一下自己的才干就好了!!
A的同事B,也有同样的想法,他更进一步,去打听老总上下班的时间,算好他大概会在何时进电梯,他也在这个时候去坐电梯,希望能遇到老总,有机会可以打个招呼。
他们的同事C更进一步。他详细了解老总的奋斗历程,弄清老总毕业的学校,人际风格,关心的问题,精心设计了几句简单却有份量的开场白,在算好的时间去乘坐电梯,跟老总打过几次招呼后,终于有一天跟老总长谈了一次,不久就争取到了更好的职位。
愚者错失机会,智者善抓机会,成功者创造机会。机会只给准备好的人,这准备二字,并非说说而已。
二十六、疯子和呆子
一个心理学教授到疯人院参观,了解疯子的生活状态。一天下来,觉得这些人疯疯癫癫,行事出人意料,可算大开眼界。
想不到准备返回时,发现自己的车胎被人下掉了。"一定是哪个疯子干的!"教授这样愤愤地想道,动手拿备胎准备装上。
事情严重了。下车胎的人居然将螺丝也都下掉。没有螺丝有备胎也上不去啊!
教授一筹莫展。在他着急万分的时候,一个疯子蹦蹦跳跳地过来了,嘴里唱着不知名的欢乐歌曲。他发现了困境中的教授,停下来问发生了什么事。
教授懒得理他,但出于礼貌还是告诉了他。
疯子哈哈大笑说:"我有办法!"他从每个轮胎上面下了一个螺丝,这样就拿到三个螺丝将备胎装了上去。
教授惊奇感激之余,大为好奇:"请问你是怎么想到这个办法的?"
疯子嘻嘻哈哈地笑道:"我是疯子,可我不是呆子啊!"
其实,世上有许多的人,由于他们发现了工作中的乐趣,总会表现出与常人不一样的狂热,让人难以理解。许多人在笑话他们是疯子的时候,别人说不定还在笑他呆子呢。
做人呆呆,处事聪明,在中国尤其不失为一种上佳做人姿态。
二十七、博士
有一个博士分到一家研究所,成为学历最高的一个人。
有一天他到单位后面的小池塘去钓鱼,正好正副所长在他的一左一右,也在钓鱼。
他只是微微点了点头,这两个本科生,有啥好聊的呢?
不一会儿,正所长放下钓竿,伸伸懒腰,蹭蹭蹭从水面上如飞地走到对面上厕所。
博士眼睛睁得都快掉下来了。水上飘?不会吧?这可是一个池塘啊。
正所长上完厕所回来的时候,同样也是蹭蹭蹭地从水上飘回来了。
怎么回事?博士生又不好去问,自己是博士生哪!
过一阵,副所长也站起来,走几步,蹭蹭蹭地飘过水面上厕所。这下子博士更是差点昏倒:不会吧,到了一个江湖高手集中的地方?
博士生也内急了。这个池塘两边有围墙,要到对面厕所非得绕十分钟的路,而回单位上又太远,怎么办?
博士生也不愿意去问两位所长,憋了半天后,也起身往水里跨:我就不信本科生能过的水面,我博士生不能过。
只听咚的一声,博士生栽到了水里。
两位所长将他拉了出来,问他为什么要下水,他问:"为什么你们可以走过去呢?"
两所长相视一笑:"这池塘里有两排木桩子,由于这两天下雨涨水正好在水面下。我们都知道这木桩的位置,所以可以踩着桩子过去。你怎么不问一声呢?"
学历代表过去,只有学习力才能代表将来。尊重经验的人,才能少走弯路。一个好的团队,也应该是学习型的团队。
二十八、跳槽
A对B说:"我要离开这个公司。我恨这个公司!"
B建议道:"我举双手赞成你报复!破公司一定要给它点颜色看看。不过你现在离开,还不是最好的时机。"
A问:???
B说:"如果你现在走,公司的损失并不大。你应该趁着在公司的机会,拼命去为自己拉一些客户,成为公司独挡一面的人物,然后带着这些客户突然离开公司,公司才会受到重大损失,非常被动。"
A觉得B说的非常在理。于是努力工作,事遂所愿,半年多的努力工作后,他有了许多的忠实客户。
再见面时B问A:现在是时机了,要跳赶快行动哦!
A淡然笑道:老总跟我长谈过,准备升我做总经理助理,我暂时没有离开的打算了。
其实这也正是B的初衷。一个人的工作,永远只是为自己的简历。只有付出大于得到,
让老板真正看到你的能力大于位置,才会给你更多的机会替他创造更多利润。
二十九、三个金人
曾经有个小国到中国来,进贡了三个一模一样的金人,金碧辉煌,把皇帝高兴坏了。可是这小国不厚道,同时出一道题目:这三个金人哪个最有价值?
皇帝想了许多的办法,请来珠宝匠检查,称重量,看做工,都是一模一样的。怎么办?使者还等着回去汇报呢。泱泱大国,不会连这个小事都不懂吧?
最后,有一位退位的老大臣说他有办法。
皇帝将使者请到大殿,老臣胸有成足地拿着三根稻草,插入第一个金人的耳朵里,这稻草从另一边耳朵出来了。第二个金人的稻草从嘴巴里直接掉出来,而第三个金人,稻草进去后掉进了肚子,什么响动也没有。老臣说:第三个金人最有价值!使者默默无语,答案正确。
这个故事告诉我们,最有价值的人,不一定是最能说的人的人。老天给我们两只耳朵一个嘴巴,本来就是让我们多听少说的。善于倾听,才是成熟的人最基本的素质。
三十、鞋带
有一位表演大师上场前,他的弟子告诉他鞋带松了。大师点头致谢,蹲下来仔细系好。等到弟子转身后,又蹲下来将鞋带解松。
有个旁观者看到了这一切,不解地问:"大师,您为什么又要将鞋带解松呢?"大师回答道:"因为我饰演的是一位劳累的旅者,长途跋涉让他的鞋带松开,可以通过这个细节表现他的劳累憔悴。"
"那你为什么不直接告诉你的弟子呢?"
"他能细心地发现我的鞋带松了,并且热心地告诉我,我一定要保护他这种热情的积极性,及时地给他鼓励,至于为什么要将鞋带解开,将来会有更多的机会教他表演,可以下一次再说啊。"
人一个时间只能做一件事,懂抓重点,才是真正的人才。
三十一、我是陈阿土
陈阿土是台湾的农民,从来没有出过远门。攒了半辈子的钱,终于参加一个旅游团出了国。
国外的一切都是非常新鲜的,关键是,陈阿土参加的是豪华团,一个人住一个标准间。这让他新奇不已。
早晨,服务生来敲门送早餐时大声说道:"GOODMORNING SIR!"
陈阿土愣住了。这是什么意思呢?在自己的家乡,一般陌生的人见面都会问:"您贵姓?"
于是陈阿土大声叫道:"我叫陈阿土!"
如是这般,连着三天,都是那个服务生来敲门,每天都大声说:"GOODMORNING SIR!"而陈阿土亦大声回道:"我叫陈阿土!"
但他非常的生气。这个服务生也太笨了,天天问自己叫什么,告诉他又记不住,很烦的。终于他忍不住去问导游,"GOODMORNING SIR!"是什么意思,导游告诉了他,天啊!!真是丢脸死了。
陈阿土反复练习"GOODMORNING SIR!"这个词,以便能体面地应对服务生。
又一天的早晨,服务生照常来敲门,门一开陈阿土就大声叫道:"GOODMORNING SIR!"
与此同时,服务生叫的是:"我是陈阿土!"
这个故事告诉我们,人与人交往,常常是意志力与意志力的较量。不是你影响他,就是他影响你,而我们要想成功,一定要培养自己的影响力,只有影响力大的人才可以成为最强者。
三十二、饺子皮尖
有个富家子弟特别爱吃饺子,每天都要吃。但他又特别刁,只吃馅,两头的皮尖尖就丢到后面的小河里去。
好景不长,在他十六岁那年,一把大火烧了他的全家,父母急怒中相继病逝。这下他身无分文,又不好意思要饭。邻居家大嫂非常好,每餐给他吃一碗面糊糊。他则发奋读书,三年后考取官位回来,一定要感谢邻居大嫂。
大嫂对他讲:不要感谢我。我没有给你什么,都是我收集的当年你丢的饺子皮尖,晒干后装了好凡麻袋,本来是想备不时之需的。正好你有需要,就又还给你了。
大官思考良久,良久......
有一个有名的三八理论:八小时睡觉,八小时工作,这个人人一样。人与人之间的不同,是在于业余时间怎么渡过。时间是最有情,也最无情的东西,每人拥有的都一样,非常公平。但拥有资源的人不一定成功,善用资源的人才会成功。白天图生存,晚上求发展,这是二十一世纪对人才的要求。
三十三、要求
有三个人要被关进监狱三年,监狱长给他们三个一人一个要求。
美国人爱抽雪茄,要了三箱雪茄。
法国人最浪漫,要一个美丽的女子相伴。
而犹太人说,他要一部与外界沟通的电话。
三年过后,第一个冲出来的是美国人,嘴里鼻孔里塞满了雪茄,大喊道:"给我火,给我火!"原来他忘了要火了。
接着出来的是法国人。只见他手里抱着一个小孩子,美丽女子手里牵着一个小孩子,肚子里还怀着第三个。
最后出来的是犹太人,他紧紧握住监狱长的手说:"这三年来我每天与外界联系,我的生意不但没有停顿,反而增长了200%,为了表示感谢,我送你一辆劳施莱斯!"
这个故事告诉我们,什么样的选择决定什么样的生活。今天的生活是由三年前我们的选择决定的,而今天我们的抉择将决定我们三年后的生活。我们要选择接触最新的信息,了解最新的趋势,从而更好的创造自己的将来。
三十四、当老虎来临时
两个人在森林里,遇到了一只大老虎。A就赶紧从背后取下一双更轻便的运动鞋换上。B急死了,骂道:"你干嘛呢,再换鞋也跑不过老虎啊!"
A说:"我只要跑得比你快就好了。"
二十一世纪,没有危机感是最大的危机。特别是入关在即,电信,银行,保险,甚至是公务员这些我们以为非常稳定和有保障的企业,也会面临许多的变数。当更多的老虎来临时,我们有没有准备好自己的跑鞋?
五十二、第一名
毕业典礼上,校长宣布全年级第一名的同学上台领奖,
可是连续叫了好几声之后,那位学生才慢慢的走上台。
后来,老师问那位学生说:"怎么了?是不是生病了?还是没听清楚?"
学生答:"不是的,我是怕其它同学没听清楚。"
名与利是多少人的捆绑、多少人的心结?我们被教育要争气、要出头,但是争气出头的,不过是少数人,沉默的大众毕竟还多数。
想一想,有那么多人都和你我一样,不也是很兴奋的一件事吗?
五十三、理由充分
一辆载满乘客的公共汽车沿着下坡路快速前进着,有一个人后面紧紧地追赶着这辆车子。
一个乘客从车窗中伸出头来对追车子的人:"老兄!算啦,你追不上的!"
"我必须追上它,"这人气喘吁吁地说:"我是这辆车的司机"
有些人必须非常认真努力,因为不这样的话,后果就十分悲惨了!
然而也正因为必须全力以赴,潜在的本能和不为人知的特质终将充分展现出来。
五十四、原来如此
甲:「新搬来的邻居好可恶,昨天晚上三更半夜、夜深人静之时然跑来猛按我家的门铃」
乙:「的确可恶!你有没有马上报警?」
「没有。我当他们是疯子,继续吹我的小喇叭。」
事出必有因,如果能先看到自己的不是,答案就会不一样。
在你面对冲突和争执时,先想一想是否心中有亏,或许很快就能释怀了。
某日,张三在山间小路开车。
正当他悠哉地欣赏美丽风景时,突然迎面开来一辆货车,
而且满口黑牙的司机还摇下窗户对他大骂:"猪"
张三越想越纳闷,也越想越气,于是他也摇下车窗回头大骂:"你才是猪!"
才刚骂完,他便迎头撞上一群过马路的猪。
不要错误的诠释别人的好意,那只会让自己吃亏,并且使别人受辱。
在不明所以之前,先学会按捺情绪,耐心观察,以免事后生发悔意。
五十五、后生可畏
小男孩问爸爸:"是不是做父亲的总比做儿子的知道得多?"
爸爸回答:"当然啦!"
小男孩问:"电灯是谁发明的?"
爸爸:"是爱迪生。"
小男孩又问:"那爱迪生的爸爸怎么没有发明电灯?"
很奇怪,喜欢倚老卖老的人,特别容易栽跟斗。
权威往往只是一个经不起考验的空壳子,尤其在现今这个多元开放的时代。
五十六、不必紧张
小明洗澡时不小心吞下一小块肥皂,他的妈妈慌慌张张地打电话向家庭医生求助。
医生说:"我现在还有几个病人在,可能要半小时后才能赶过去。"
小明妈妈说:"在你来前,我该做甚么?"
医生说:"给小明喝一杯白开水,然后用力跳一跳,你就可以让小明用嘴巴吹泡泡消磨时间了。"
Take it easy! 放轻松些,生活何必太紧张?事情既然已经发生了,何不坦然自在的面对。
担心不如宽心,穷紧张不如穷开心。
五十七、钥匙
一把坚实的大锁挂在大门上,一根铁杆费了九牛二虎之力,还是无法将它撬开。
钥匙来了,他瘦小的身子钻进锁孔,只轻轻一转,大锁就"啪"地一声打开了。
铁杆奇怪地问:"为什么我费了那么大力气也打不开,而你却轻而易举地就把它打开了呢?"
钥匙说:"因为我最了解他的心。"
每个人的心,都像上了锁的大门,任你再粗的铁棒也撬不开。
唯有关怀,才能把自己变成一只细腻的钥匙,进入别人的心中,了解别人。
五十八、心灵鸡汤之四——爱的力量(一)
人类在探索太空,征服自然后,将会发现自己还有一股更大的能力,那就是爱的力量,当这天来临时,人类文明将迈向一个新的纪元。
——"法"夏尔丹
爱,创造出力量
随处散播你的爱心,就从对你的家人开始,多一分关爱给你的孩子,你的另一半,然后你的邻居......,让每个接近你的人都有如沐春风的感觉。给别人一个关怀的眼神,一个灿烂的微笑,一个温暖的拥抱,为上帝的仁慈做见证。
——泰瑞莎修女
25年前,有位教社会学的大学教授,曾叫班上学生到巴尔的摩的贫民窟,调查200名男孩的成长背景和生活环境,并对他们未来的发展做一评估,每个学生的结论都是"他毫无出头的机会"。
25年后,另一位教授发现了这份研究,他叫学生做后续调查,看昔日这些男孩今天是何状况。结果根据调查,除了有20名男孩搬离或过世,剩下的180名中有176名成就非凡,其中担任律师、医生或商人的比比皆是。
这位教授在惊讶之余,决定深入调查此事。他拜访了当年曾受评估的年轻人,跟他们请教同一个问题,"你今日会成功的最大原因是什么?"结果他们都不约而同地回答:
"因为我遇到了一位好老师。"
这位老师目前仍健在,虽然年迈,但还是耳聪目明,教授找到她后,问她到底有何绝招,能让这些在贫民窟长大的孩子个个出人头地?
这位老太太眼中闪着慈祥的光芒,嘴角带着微笑回答道:"其实也没什么,我爱这些孩子。"
——艾瑞克?布特
五十九、爱是所有回忆
苦痛会消失,
唯有真爱永留心间。
父亲与我谈话时,他总是会先说一句:"我今天告诉过你我有多么爱你吗?"从这句话我能深深感受到父亲对我的爱,随着岁月的流逝,父亲已迈入老年,体力大不如前,然而我们父女间的感情却是一日比一日深厚。
到了82岁,他已有撒手而去的心理准备,而我也想让他早日脱离病痛的折磨。我们紧握彼此的手,笑着和对方告别,但眼中仍是忍不住充满了泪水。我说:"爸,等你走后,我希望能接到你报平安的讯息。"他笑说我想法荒谬,因为爸并不相信世间有轮回转世,其实我也不太相信鬼神之说,但我的许多亲身经验却又让我不得不怀疑"另一边"的人能与我们相通。
所谓父女连心,当父亲走的那一刻,我胸中也能感应到他心脏病发作的瞬间。最令我遗憾的是,碍于医院的某些规定,我竟无法在他咽下最后一口气时握着他的手。
父亲走后,我每日祈祷能听到他的声音,每晚我期盼他能入梦来,但仍是音讯全无;4个月以来,我听到的只有亲友的吊唁。母亲早在5年前因老年痴呆症去世,失去双亲的我,即使已过中年,心里仍像孩童一样茫然无助。
有一天,我躲在黑暗安静的房间里等着师傅来帮我按摩,一阵想念父亲的情绪又填满了胸口,我开始怀疑,是否自己过于殷切地期盼能听到他的声音。突然间,我发觉自己的神志敏锐异常,脑袋出奇地清楚,就算给我一长串的数字我也能加减自如,起初我怀疑自己是身在梦中,但我后来确定,这种感觉是百分之百的真实。原本混乱的思绪在脑中如水滴扰乱了静止的湖面,此时却异常的平静,我心中对这种改变惊讶不已,这让我领悟到:或许我不该如此强求想获得父亲的讯息。
霎时,我在黑暗中见到了母亲的脸——她在患病前那张充满慈爱的丰润脸庞:她仍是一头白发,脸上仍旧带着笑容。母亲的影像如此真实鲜明,似乎我伸手便可触及。她的模样一如从前,我甚至闻到她最爱用的Joy的香水味。她静静地站在我面前,一言不发。我有些纳闷为何我想的是父亲,出现的却是母亲,同时也对许久未想起母亲而感到些许愧疚。
我说:"妈,晚年的那场病让您受苦了。"
母亲轻轻地将头侧到一边,仿佛表示理解我的心思。她给了我一个美丽的微笑,然后清楚他说:"不过,爱是我所有的回忆。"说完她便消失无踪了。
房间突然一阵微寒,使我不禁打了个冷成。此时我深深感觉到,最重要的是我们曾对彼此付出关怀;苦痛会消失,唯有真爱永留心间。
母亲这句话点醒了我,直到如今,我还忘不了与她相见的那一刻。
虽然我一直没有父亲的讯息,但我深信有一天,他会出其不意地出现在我面前,再说一次:"我今天告诉过你我有多么爱你吗?"
——芭比?布罗斯坦
六十、真爱
上帝啊!一个驼背的妇女将是个悲剧,求你把驼背赐给我,再将美貌留给我的新娘。

墨西?孟德尔颂是德国知名作曲家的祖父。他的外貌极其平凡,除了身材五短之外,还是个古怪可笑的驼子。
一天,他到汉堡去拜访一个商人,这个商人有个心爱的女儿名叫弗西,墨西无可救药地爱上了她,但弗西却因他的畸形外貌而拒绝他。
到了必须离开的时候,墨西鼓起了所有的勇气,上楼到弗西的房间,把握最后和她说话的机会。她有着天使般的脸孔,但让他十分沮丧的是,弗西始终拒绝正眼看他。经过多次尝试性的沟通,他害羞地问:"你相信姻缘天注定吗?"
她眼睛盯着地板答了一句:"相信",然后反问他:"你相信吗?"
他回答:"我听说,每个男孩出生之前,上帝便会告诉他,将来要娶的是哪一个女孩。我出生的时候,未来的新娘便已许配给我了,上帝还告诉我,我的新娘是个驼子。
"我当时向上帝恳求:‘上帝啊!一个驼背的妇女将是个悲剧,求你把驼背赐给我,再将美貌留给我的新娘。'"
当时弗西看着墨西的眼睛,并被内心深处的某些记忆所搅乱了。她把手伸向他,之后成了他最挚爱的妻子。
六十一、抱抱法官
让别人的生命有一点不同,有一点亮光是何等简单啊!
李夏普洛是个已经退休的法官,他天性极富爱心。终其一生,他总是以爱为前提,因为他明了爱是最伟大的力量。因此他总是拥抱别人。他的大学同学给他取了"抱抱法官"的绰号。甚至车子的保险杠都写着:"别烦我!拥抱我!"
大约6年前,他发明了所谓的"拥抱装备"。外面写着:"一颗心换一个拥抱。"里面则包含30个背后可贴的刺绣小红心。他常带着"拥抱装备"到人群中,借着给一个红心,换一个拥抱。
李因此而声名大噪,于是有许多人邀请他到相关的会议或大会演讲;他总是和人分享"无条件的爱"这种概念。一次,在洛杉矶的会议中,地方小报向他挑战:"拥抱参加会议的人,当然很容易,因为他们是自己选择参加的,但这在真实生活中是行不通的。"
他们要求李是否能在洛杉矶街头拥抱路人。大批的电视工作人员,尾随李到街头进行探访。首先李向经过的妇女打招呼:"嗨!我是李夏普洛,大家叫我‘抱抱法官'。我是否可以用这些爱心和你换一个拥抱。"妇女欣然同意,地方新闻的评论员则觉得这太简单了。李看看四周,他看到一个交通女警,正在开罚单给一台BMW的车主。李从容不迫地走上前去,所有的摄影机紧紧跟在后面。接着他说:"你看起来像需要一个拥抱,我是‘抱抱法官',可以免费奉送一个拥抱。"那女警接受了。
那位电视时事评论员出了最后的难题:"看,那边来了一辆公共汽车。众所皆知,洛杉矶的公共汽车司机最难缠,爱发牢骚,脾气又坏。让我们看看你能从司机身上得到拥抱吗?"李接受了这项挑战。
当公车停靠到路旁时,李跟车上的司机攀谈:"嗨!我是李法官,人家叫我‘抱抱法官'。开车是一项压力很大的工作哦!我今天想拥抱一些人,好让人能卸下重担,再继续工作。你需不需要一个拥抱呢?"那位六尺二、二百三十磅的公车司机离开座位,走下车子,高兴地说:"好啊!"
李拥抱他,还给了他一颗红心,看着车子离开还直说再见。采访的工作人员,个个无言以对。最后,那位评论员不得不承认,他服输了。
一天,李的朋友南西?詹斯顿来拜访他。她是个职业小丑,身着小丑服装,画上小丑的脸谱。
她来邀请李带着"拥抱装备",一起去残疾之家,探望那里的朋友。
他们到达之后,便开始分发气球、帽子、红心,并且拥抱那里的病人。李心里觉得很难过,因为他从没拥抱过临终的病人、严重智障或四肢麻痹的人。刚开始很勉强,但过了一会儿,南西和李受医师和护士的鼓励之后,便觉得容易得多了。
数小时之后,他们终于来到了最后一个病房。在那里,李看到他这辈子所见过情况最糟的34个病人,顿时他的情绪变得十分复杂。他们的任务是要将爱心分出去,点亮病人心中的灯火,于是李和南西便开始分送欢乐。此时整个房间挤满着被鼓舞的医护人员。
他们的领口全贴着小红心,头上还戴着可爱的气球帽。
最后李来到最后一个病人李奥?纳德面前。李奥穿着一件白色围兜,神情呆滞地流着口水。李看他流着口水时,对南西说:"我们跳过去别管他吧!"南西回答:"可是他也是我们的一分子啊!"接着她将滑稽的气球帽放在李奥头上。李则是贴了一张小红心在围兜上。他深呼吸一下,弯下腰抱一下李奥。
突然间,李奥开始嘻嘻大笑,其它的病人也开始把房间弄得叮当作响。李回过头想问医护人员这是怎么一回事时,只见所有的医师、护士都喜极而泣。李只好问护士长发生什么事了。
李永远不会忘记她的回答:"23年来,我们头一次看到李奥笑了。"
让别人的生命有一点不同,有一点亮光是何等简单啊!
——杰克?坎菲尔、马克?汉森
六十二、我是重要的
尊敬别人的人,同样会受到别人的尊敬。正像站在镜子前面一样,你怒他也怒,你笑他也笑。
一位在纽约任教的老师决定告诉她的学生,他们是如何重要,来表达对他们的赞许。
她决定采用我所提倡的一种作法,也就是将学生逐一叫到讲台上,然后告诉大家这位同学对整个班级和对她的重要性,再给每人一条蓝色缎带,上面以金色的字写着:"我是重要的。"
之后那位老师想做一个班上的研究计划,来看看这样的行动对一个社区会造成什么样的冲击。她给每个学生3个缎带别针,教他们出去给别人相同的感谢仪式,然后观察所产生的结果,一个星期后回到班级报告。
班上一个男孩子到邻近的公司去找一位年轻的主管,因他曾经指导他完成生活规划。
那个男孩子将一条蓝色缎带别在他的衬衫上,并且再多给了2个别针,接着解释,"我们正在做一项研究,我们必需出去把蓝色缎带送给感谢尊敬的人,再给你们多余的别针,让他们也能向别人进行相同的感谢仪式。下次请告诉我,这么做产生的结果。"
过了几天,这位年轻主管去看他的老板。从某些角度而言,他的老板是个易怒、不易相处的同事,但极富才华,他向老板表示十分仰慕他的创作天分,老板听了十分惊讶。
这个年轻主管接着要求他接受蓝色缎带,并允许他帮他别上。一脸吃惊的老板爽快地答应了。
那年轻人将缎带别在老板外套、心脏正上方的位置,并将所剩的别针送给他,然后问他:"您是否能帮我个忙?把这缎带也送给您所感谢的人。这是一个男孩子送我的,他正在进行一项研究。我们想让这个感谢的仪式延续下去,看看对大家会产生什么样的效果。"
那天晚上,那位老板回到家中,坐在14岁儿子的身旁,告诉他:"今天发生了一件不可思议的事。在办公室的时候,有一个年轻的同事告诉我,他十分仰慕我的创造天分,还送我一条蓝色缎带。想想看,他认为我的创造天分如此值得尊敬,甚至将印有‘我很重要'的缎带别在我的夹克上,还多送我一个别针,让我能送给自己感谢尊敬的人,当我今晚开车回家时,就开始思索要把别针送给谁呢?我想到了你,你就是我要感谢的人。
"这些日子以来,我回到家里并没有花许多精力来照顾你、陪你,我真是感到惭愧。
有时我会因你的学习成绩不够好,房间太过脏乱而对你大吼大叫。但今晚,我只想坐在这儿,让你知道你对我有多重要,除了你妈妈之外,你是我一生中最重要的人。好孩子,我爱你。"
他的孩子听了十分惊讶,他开始呜咽啜泣,最后哭得无法自制,身体一直颤抖。他看着父亲,泪流满面地说:"爸,我原本计划明天要自杀,我以为你根本不爱我,现在我想那已经没有必要了。"
六十三、礼物
爱是不会老的,它留着的是永恒的火焰与不灭的光辉,世界的存在,就以它为养料。
——左拉
这个感人的故事,发生在一辆公车上,公车沿着南方偏僻公路蹒跚而行。
车子里的乘客,有位瘦弱的老人,手里握着一束鲜花,车过教堂时,上来一个少女,目不转睛地看着老人的鲜花。
到了老人快要下车时,他忽然冲动地将自己手中的鲜花推向少女的怀中。他赶忙解释说:"我看得出来你很喜欢这束花,我想我太太也会很高兴你拥有这束花的。我会告诉她我把花送给你了。"
那女孩接受那束花后,目送老人下车,看着他慢慢走到一座小公墓的门口。
六十四、哥哥的心愿
人在心中应该设身处地想到的,不是那些比我们更幸福的人,而只是那些比我们更值得同情的人。
——卢梭
圣诞节时,保罗的哥哥送他一辆新车。圣诞节当天,保罗离开办公室时,一个男孩绕着那辆闪闪发亮的新车,十分赞叹地问:"先生,这是你的车?"
保罗点点头:"这是我哥哥送给我的圣诞节礼物。"男孩满脸惊讶,支支吾吾地说:
"你是说这是你哥哥送的礼物,没花你半毛钱?我也好希望能......"
当然保罗以为他是希望能有个送他车子的哥哥,但那男孩所谈的却让保罗十分震撼。
"我希望自己能成为送车给弟弟的哥哥。"男孩继续说。
保罗惊愕地看着那男孩,冲口而出地邀请他:"你要不要坐我的车去兜风?"
男孩兴高采烈地坐上车,绕了一小段路之后,那孩子眼中充满兴奋地说:"先生,你能不能把车子开到我家门前?"
保罗微笑,他心想那男孩必定是要向邻居炫耀,让大家知道他坐了一部大车子回家。
没想到保罗这次又猜错了。"你能不能把车子停在那两个阶梯前?"男孩要求。
男孩跑上了阶梯,过了一会儿保罗听到他回来的声音,但动作似乎有些缓慢。原来他带着跛脚的弟弟出来,将他安置在台阶上,紧紧地抱着他,指着那辆新车。
只听那男孩告诉弟弟:"你看,这就是我刚才在楼上告诉你的那辆新车。这是保罗他哥哥送给他的哦!将来我也会送给你一辆像这样的车,到那时候你便能去看看那些挂在窗口的圣诞节漂亮饰品了。"
保罗走下车子,将跛脚男孩抱到车子的前座。满眼闪亮的大男孩也爬上车子,坐在弟弟的旁边。就这样他们三人开始一次令人难忘的假日兜风。
那一次的圣诞夜中,保罗才真正体会耶稣所说的"施比受更有福"的道理。
六十五、勇气
只要能生死相共,便是痛苦也成为欢乐了。
——罗曼?罗兰
"你认为我很有勇气?"她问道。
"没错,你很有勇气。"
"如果我有几分勇气,那也是因为经过几位良师的启蒙,我可以举一位给你听听。
多年前,我曾在史丹福医院担任义工,那时认识了一个叫丽莎的小女孩。她身患重疾,病情十分罕见,唯一能挽回她性命的机会,便是接受五岁幼弟的输血,因为她弟弟也曾罹患此病,后来奇迹般地被救活,现在体内产生出了能对抗病毒的抗体。医生向这个小男生解释了情况,问他是否愿意输血给姐姐。我见他只迟疑了半秒钟,便深深地吸口气说:‘如果能救活丽莎,我愿意。'"
"进行输血时,他静静躺在姐姐身旁,见到姐姐双颊恢复红润,他不禁面露微笑。
但接着他收起了笑容,脸色苍白地望着医生,用颤抖的声音问道:‘我会马上死掉吗?'"
"原来他年纪太小,误解了医生的意思,以为要将全身的血都输给姐姐。"
"是的,我学到了什么叫勇气,"她补充道:"因为我见到了一个榜样。"
——丹?米尔曼
六十六、大声说出你的爱
谁要是不会爱,谁就不能理解生活。
——高尔基
有次我受邀前往外地,发表有关高效率管理的演讲。抵达当晚,主办单位的几个人请我吃饭,顺便聊聊明天来听演讲的是些什么听众。
艾德显然是这几个人的龙头老大,块头很大,声音十分低沉。他告诉我,他是家大型国际企业的经理,主要职责是到一些分公司,去处理公司内部较为棘手的人事问题,终止一些高级主管的聘用。
"乔,"他说:"我十分期待明天的演讲,因为这些人在聆听过你的高见后,就会知道我的管理方式是正确的。"他得意地对我笑道。
我微笑不语,因为我知道明天的情况绝对与他想象的大不相同。
第二天,艾德表情木然地听完全场演讲,然后一言不发地离开会场。
三年后,我重返旧地,向相同的听众发表另一篇有关管理的演讲,我在听众群中又发现了艾德。就在演讲即将开始前,他突然站起来,扯着喉咙问我:"乔,我能先讲几句话吗?"
我打趣地说:"当然,你身材如此魁梧,你爱讲几句就讲几句,我不敢拦你。"
艾德于是开口:"在座的各位都认识我,其中有些人还知道我近来的改变,今天我想把亲身的体验与各位分享。乔,想必我这番话会让你感到欣慰。"
"三年前的一场演讲里,乔曾表示,若想培养坚韧的意志,首先就该学习向身旁最亲近的人说声我爱你。起初我对这点颇不以为然,心想这种肉麻兮兮的话和意志坚韧能扯上什么关系?乔说坚韧与坚硬不同,坚韧如同皮革,坚硬则像花岗岩,而一个意志坚韧的人应该是思想开通,不屈不挠,行为自律,做事灵活,这些话我赞同,但这与爱有什么关系呢?"
"那晚,我和太太两人坐在客厅的两端,脑中仍想着乔的话。霎时我发现自己竟鼓不起勇气向太太表示爱意,我好几次清了清喉咙,但话到了嘴边,只含糊地发了些声音,其余的又吞了回去。我太太抬起了头,问我刚才嘟哝了些什么,我若无共事地回答说没事。突然间,我起身走向她,紧张地将她手上的报纸拿开,然后说:‘艾丽斯,我爱你。'她好一阵子说不出活来,泪水涌上她的眼眶,这时她轻声地说:‘艾德,我也爱你,这是你25年来第一次开口说爱我。'"
"我们当时感触万千,深深体会到爱能化解一切纷争摩擦。突然间,我像是受到鼓舞般,立刻拨了电话给在纽约的大儿子,我们已经许久没有联络了。我一听到他的声音便脱口而出:‘儿子,也许你以为我喝醉了,但我现在很清醒。我打电话来只是想告诉你我爱你。'"
"他在话筒那端沉默了片刻,然后语气平静地说:‘爸,我知道你爱我,真高兴能听到你亲口告诉我,我也要对你说我爱你。'"
我们开始闲话家常,聊得十分愉快。接着我又打电话给在旧金山的小儿子,告诉他同样的事,结果我们父子畅谈许久,那种温馨的感觉我从未有过。
"那晚我躺在床上沉思,终于领悟了乔所说的那番话有更深一层的意义:如果我能真正地了解以爱待人的含义而且身体力行,定能对我的管理方式产生正面的影响。"
"我开始阅读相关题材的书籍,从中吸取到不少人的宝贵经验,使我更体会到这套哲学能运用到生活的各个层面,无论是家庭或是工作。"
"你们有些人知道,我彻底改变了与人共事的方式。我开始仔细倾听他人的想法;我学会多欣赏他人的长处,少计较他人的短处;我也体会到帮助别人建立信心的那种快乐。然而最重要的是,我现在了解,尊敬他人的最佳方法,便是鼓励他们发挥自己的能力,来达到大家共同努力的目的。"
"乔,借着今天这个机会,我要说声谢谢你。顺便跟大家提一下,我现在是公司的副董事,领导能力颇受肯定。好了,各位,现在专心听他演讲吧!"
——乔?贝顿
六十七、多一句    人们相互希望得越多,想要给予对方的越多......就必定越亲密。
几天前,我和一位朋友在纽约搭计程车,下车时,朋友对司机说:"谢谢,搭你的车十分舒适。"这司机听了愣了一愣,然后说:"你是混黑道的吗?"
"不,司机先生,我不是在寻你开心,我很佩服你在交通混乱时还能沉住气。"
"是呀!"司机说完,便驾车离开了。
"你为什么会这么说?"我不解地问。
"我想让纽约多点人情味,"他答道,"唯有这样,这城市才有救。"
"靠你一个人的力量怎能办得到?"
"我只是起带头作用。我相信一句小小的赞美能让那位司机整日心情愉快,如果他今天载了20位乘客,他就会对这20位乘客态度和善,而这些乘客受了司机的感染,也会对周遭的人和颜悦色。这样算来,我的好意可间接传达给1000多人,不错吧?"
"但你怎能希望计程车司机会照你的想法做吗?"
"我并没有希望他,"朋友回答:"我知道这种作法是可遇不可求,所以我尽量多对人和气,多赞美他人,即使一天的成功率只有30%,但仍可连带影响到3000人之多。"
"我承认这套理论很中听,但能有几分实际效果呢?""就算没效果我也毫无损失呀!开口称赞那司机花不了我几秒钟,他也不会少收几块小费。如果那人无动于衷,那也无妨,明天我还可以去称赞另一个计程车司机呀!"
"我看你脑袋有点天真病了。"
"从这就可看出你越来越冷漠了。我曾调查过邮局的员工,他们最感沮丧的除了薪水微薄外,另外就是欠缺别人对他们工作的肯定。"
"但他们的服务真的很差劲呀!"
"那是因为他们觉得没人在意他们的服务质量。我们为何不多给他们一些鼓励呢?"
我们边走边聊,途经一个建筑工地,有5个工人正在一旁吃午餐。我朋友停下了脚步,"这栋大楼盖很真好,你们的工作一定很危险辛苦吧?"那群工人带着狐疑的眼光望着我朋友。
"工程何时完工?"我朋友继续问道。
"6月。"一个工人低应了一声。
"这么出色的成绩,你们一定很引以为荣。"
离开工地后,我对他说:"你这种人也可以列入濒临绝种动物了。"
"这些人也许会因我这一句话而更起劲地工作,这对所有的人何尝不是一件好事呢?"
"但光靠你一个人有什么用呢?你不过是一个小民罢了。"
"我常告诉自己千万不能泄气,让这个社会更有情原本就不是简单的事,我能影响一个就一个,能两个就两个......"
"刚才走过的女子姿色平庸,你还对她微笑?"我插嘴问道。
"是呀!我知道,"他答道,"如果她是个老师,我想今天上她课的人一定如沐春风。"
——雅特?鲍奇华
六十八、最后的心愿
无言的纯洁的天真,往往比说话更能打动人心——莎士比亚
26岁的亲凝视着她那罹患血友病而垂死的儿子。虽然她内心充满了悲伤,但同时她也下定决心,就像其它为人父母者,她希望儿子能长大成人,能实现所有的梦想。如今这一切都不可能了,因为病魔会一直缠绕着他。即使如此,她仍希望儿子的梦想能够实现。
她握着儿子的手问道:"巴柏西,你曾想过长大后要做什么吗?你对自己的一生,有过什么梦想吗?"
"妈咪,我一直希望长大后能成为消防队员。"
母亲强忍悲伤,微笑着说:"我来想想看能不能让你的愿望成真。"当天稍晚,她到亚历桑纳州凤凰城当地的消防队,找到了消防队员鲍伯,他有一颗宽大的心。这位母亲向他解释儿子临终的心愿,并请问是否能让他坐上消防车在街角转几圈。
鲍伯说:"不只这样呢,我们还可以做得更好。如果你在星期三早上7点把你儿子带到这里来,我们会让他当一整天的荣誉消防队员。他可以到消防队来,和我们一起吃饭,一起出勤。对了,如果你把他的尺寸给我,我们还可以帮他订做一套真正的消防制眼,附加一顶真的防火帽,不是玩具帽,上面还有凤凰城消防队的徽章,印着我们穿的黄色防水衣和橡胶靴。这些东西都是在凤凰城里制造,所以可以很快拿到。"
3天后,消防队员鲍伯带着巴柏西,帮他穿上消防制服,护送他从医院的病床到消防车上。巴柏西必须端坐在车子后面,鲍伯引领他回到消防队,他仿佛置身于天堂。
当天凤凰城有3起火警,巴柏西每次都得出勤务。他乘坐不同的消防车,还有救护车,甚至消防队长的座车。他还为当地的新闻节目拍录影带。
由于美梦成真以及加注在他身上所有的爱和关怀,令巴柏西深深感动,他比医生所预期的多活了3个月。
一天晚上,他所有的生命迹象开始急剧下降,护士长急忙打电话通知家属到医院。
然后她想起巴柏西曾担任过消防队员,因此她也打电话给消防队长,问他是否能派一位穿制服的消防队员到医院来,在巴柏西临终前陪伴他。队长回答道:"我们可以做得更好。5分钟之内就到。你能帮个忙吗?当你听见警笛响、看到警灯闪时,请通知医院,这不是真正的火警,这只是消防队来见他们好伙伴的最后一面。请你打开他房间的窗户,谢谢。"
大约5分钟后,一部消防车到达医院,把云梯延伸到巴柏西三楼窗前,有14位消防队员、2位女消防队员爬上云梯进入巴柏西的房间。经过他母亲的同意,他们拥抱他、握他的手,告诉他他们有多爱他。
巴柏西咽下最后一口气前,看着消防队长说:"队长,我现在能算是真正的消防队员吗?"
"算!巴柏西。"队长说。
带着那些话,巴柏西微笑着闭上了眼睛

107月/140

阿泡的产品管理心得

发布在 邵珠庆

A Business Is Not a Democracy(商业无民主可言)

Product Management is Inherently Political(产品管理就是内部政治)

  1. 我们为谁做产品决定了我们要做什么样的产品,我们做什么样的产品决定了我们的产品能走多远,我们的产品能走多远才最终决定了我们的企业能走多远。
  2. 在产品团队中,产品经理不是最聪明的人,最聪明的人在你的团队中,去发现这些聪明的人、聪明的想法。
  3. 产品经理想做好工作,必需要具备“五个一”:一个脑袋、一双眼睛、一对耳朵、一双手以及一双脚。
  4. 主动是要找到目标,好学是要实现目标,对产品经理这个人是如此,对产品经理的工作更是如此。
  5. 对于“产品”的认识决定了产品经理工作的广度,对于“需求”的认识决定了产品经理工作的深度。
  6. 对于产品经理来说,根本要关注的是如何提供给用户解决问题的最好方法,而不是提供给用户一个完美的产品。
  7. 一个好产品并不一定是一个能挣钱的产品,而能挣钱的产品,对于企业来说,则肯定是一个好产品。
  8. 作为一个产品经理,如果你还做不到为企业挣钱,那么就要先做到为企业省钱。
  9. 用户可以影响我们的产品方向,但不能决定我的产品方向。
  10. 教育用户这个问题的根本不是是否需要教育用户,而是教育用户的成本到底由谁来承担,这绝不能成为产品经理的一种惯性思维,一定视情况而论。
  11. 产品经理的理想且终极的目标就是:在合适的时间、合适的地点向合适的用户推出合适的产品!
  12. 产品经理,一个在跷跷板上工作的人,一边是用户的利益,一边是企业的利益,做好了是左右逢源,做不好就是左右为难
  13. 一个合格的产品经理应该是拉出去可以冲锋陷阵,拉回来可以排兵布阵,既有参谋的眼光,又有指挥官的果断!
  14. 一个产品经理需要了解的技术领域,宽度需要两英里,深度需要两英寸!
  15. 产品经理无非就做两件事情:知道做什么、知道怎么做。前者就是产品经理的战略规划,后者就是产品经理的战术指导。
  16. 产品经理,要相信自己的双腿,不要相信自己的耳朵!
  17. 作为一个产品经理,不要向别人轻易地承诺,也不要相信别人轻易的承诺。
  18. 情感是热血的,商业是冷血的,产品经理应该很多时候是一个凭热血去做冷血事情的角色。
  19. 产品经理在公司内的关系很简单,要么去和稀泥,要么去得罪人,但现在看,得罪人要比和稀泥更有前途。
  20. 都说忠言逆耳利于行,但对于产品经理来说,不但要有忠言,关键还得顺耳,才有可能利于行,这或许就是产品经理沟通能力的最高体现吧。
  21. 作为一个产品经理,在决策建议上可以允许失误,但绝对不能允许愚蠢。
  22. 成功就是不打折扣的执行,失败则是一个折扣接着又一个折扣的执行,因此,产品经理是不允许在业务执行上打折扣的。
  23. 无数的事实已经证明,一个产品的成功并不是由这个产品经理做对了多少决定的,而是由他的竞争对手做错了多少决定的。
  24. 产品经理一定是一个动脑比动腿多的职位,但要想更好地动脑,前提是腿必须先动起来。
  25. 这个世界上并不是没有需求,而是我们缺乏发现需求的眼睛。
  26. 都说产品经理的第一能力就是沟通交流的能力,怎么沟通、怎么交流,不是说你把该说的说了就可以了,而应该是把该说的说好了、说对了,说到团队成员的心窝子里才能证明你会沟通、会交流。
  27. 产品经理要面对的各类角色太多,很多时候都会形成一种对立面,在不涉及原则的情况,产品经理要学会先往后退。
  28. 产品经理一定要学会说“不”,面对的对象可能是我们的高层、伙伴以及客户,之所以这样,究其根本,是为了避免市场向我们说“不”。
  29. 对于产品经理来说,不是我们产品的机会越来越少,而是我们挖掘和发现机会的难度越来越大
  30. 对于产品经理而言,要处理好各种关系,不但要以人为本,还要以人的利益为本。
  31. 对于产品经理而言,知道不做什么要比知道做什么更有价值。
  32. 把任何想法都记录下来,如果不记录下来,这个想法将永远只是“想法”。
  33. 对于产品经理而言,应该是没事不找事,有事不怕事。
  34. 产品经理最大的智慧就是把别人的智慧变成自己的智慧。
21月/140

从腾讯新晋大员看其管理与政治脉络

发布在 邵珠庆

腾讯地图最新的发布会,出来宣讲的是新晋副总裁马喆人,却不是那个执掌无线业务事业群(MIG)的老资格副总裁丁珂。有人就问这是为什么?就此邀请“深喉”统一答疑。不担保精准,您就当八卦看。

目前无线事业群有两个管业务的副总裁,丁珂和马喆人,同时向COO任宇昕汇报。马喆人管的是腾讯地图,剩下的虽然貌似丁珂都能管,但确乎其重点只在安全和手机助手。浏览器有总经理钟翔平管,渠道是另一总经理谢平章管,还有一个管市场的乐露萍,再加上另一个管人事的副总裁唐毅斌,以“六人会议汇报”的形式,每双周向任宇昕汇报决策。

所以丁珂势力范围在安全和手机助手。还有谣传,手机助手这一块可能被划给社交网络事业群(SNG),因这个业务所在的移动应用平台部由林松涛兼任总经理,而林一直是社交网络事业群的开放平台部总经理。再考虑到社交网络事业群也是向任宇昕汇报,想来转移的难度不大,左手倒右手。

那丁珂手里剩下的就是安全了。对面是360,且非腾讯擅长,这不是好干的活儿。知道你也可能自然会联想到一个词,鸡肋。

下面说看点。

往好了说,腾讯这家公司越发的鼓励内部良性竞争。

第一,老大走人,下一级不一定能顺位接班。无线事业群的老大,执行副总裁刘成敏离职,按理说一直作为这个事业群唯一副总裁的丁珂可顺位接班。你看人家社交网络事业群就是这样干的,汤道生接了吴宵光的班。可丁珂没接成班。说明国企那一套不是腾讯的玩法。你要足够硬才行。无线事业群业绩不好,副总裁没资格接班。

第二,做得不够好,别说接班,连本来的地盘都保不住。所以来了个马喆人,在腾讯资历比丁珂浅不少的一个新晋的副总裁,把腾讯地图这一块最具前景的地盘接管了。可能你也一样觉得,地图比安全有前景、有诱惑。有人压力肯定小不。

第三,想上位,先竞争。执行副总裁这个位子就这么空着,两个副总裁各管一摊,再加上负责浏览器、渠道、市场的几个总经理也是向COO汇报。几架马车同时跑,看谁彪得猛,跑得快。赛马中相马。

好的说完了,现在往八卦的方向说。大公司嘛,总免不了政治。政治的核心问题是一句话,“你是谁的人”。政治这玩意是避不开的,有人就会有政治。

既然避不开,就尽量扬长避短。对大公司而言,政治虽有极恶劣的影响,却也在客观效果上有利于制衡。两派相争,如民主党和共和党,总架构能更稳定,防止只手翻天,一派独大。因此在现实里也被各层级的老大们广泛容忍,以及利用。比如,总裁在副总裁下面的总经理这一级安插心腹和盯梢,那副总裁就顺理在总经理下面的总监这一级安插心腹和盯梢。层层嵌套,既合作又竞争。大家都有安全感。

大公司人事的一举一动,都最好从两条线来看。一是业务,一是政治。抛开任何一条线,都难窥全貌。

第一,马喆人上位,在帅位空缺的无线事业群安营扎寨。之前没具体做产品的经历,却一上来就接手最有前景的业务,大风光。马喆人何许人也?从咨询公司空降腾讯做战略发展部总经理,隶属于企业发展事业群(CDG),一度向总裁刘炽平直接汇报。被坊间称为“大内总管”。

大内总管外放任四川总督,史书里常有的段子。四川总督能否过渡为封疆大吏,节制西南三省党政军权,得看各人实力和造化。不过机会是给到位了,要放出去的信号是明确了。

第二,丁珂在刘成敏离职后处于走下坡路的势头。据说早年丁珂跟刘成敏关系很好,但最近一两年因种种不可说的缘由,急剧恶化。跟老大闹翻,在公司政治的个人信用史上是个污点。其它老大会怎么看?你对他就这样搞,将来对我也难免如此。

若你没老大罩了,那下面人会怎么干?良禽择木而栖,既然要抱大腿,肯定力所能及抱个最结实、最上流的。若换了你,也该不会去抱丁珂,怎么着也得抱任宇昕或者刘炽平吧。

第三,总裁刘炽平勤劳、务实,求贤若渴,人脉渐丰。举几个例。空降的首席战略官、总裁办成员james mitchell接管企业发展事业群。这老外跟刘炽平同样是资本界起家,同出于高盛。接替吴宵光执掌社交网络事业群帅印、总裁办成员汤道生,是刘炽平的同学。执掌财付通的赖智明也是刘炽平的同学。点到为止,其它就不多说。

第四,无线事业群以后怎么搞?是个有趣问题。按各事业群的惯例架构,该有个执行副总裁统管,向任宇昕汇报。不过现在显然没合适人选。丁珂不OK,历史问题难获得诸位老大的信任,况且江湖上还谣传任宇昕跟离任的刘成敏私交很好,这一关丁珂难过。马喆人不OK,管产品、管业务的资历还挺浅,况且是刘炽平的大内总管,任宇昕也得做好制衡的本份工作。其它几个总经理,短期内也难当此大任。

这一摊子很考验任宇昕。当然,这个事业群也许根本就不需要一个执行副总裁。无线的大局和命脉都在微信那儿呢。将来微信和无线事业群可能会有整合。这是未来一两年,腾讯最好看也最重要的一幕剧情。

若是整合,两个核心问题:张小龙向谁汇报?谁做副手制衡张小龙?能回答这个问题的,除了当事人张小龙,最关键是看三个人的默契以及博弈状况:马化腾,刘炽平,任宇昕。

大公司的故事真的蛮有趣。于无声处听惊雷。

本自媒体帐号:孕峰。

科技不断提高效率同时也引发焦虑,物极必反,我们开始从传统文化里寻找平衡,观照人本身。

越科技,越人文。

29月/130

二十五个精美的后台管理界面模板和布局

发布在 邵珠庆

任何系统都会有一个管理后台,好看的管理后台看起来赏心悦目,管理的时候心情也舒畅,本文给大家推荐 25 个制作精美的后台管理界面的模板和布局,你值得拥有。

Free Admin Template

Web App Theme

Spring Time

Free Admin Template For Web Applications

Free Admin Template

INADMIN

Free admin skin

AdminPraise Lite

Premium Admin HTML Website Templates

MWS Admin – Full Featured Admin Template

Color life – Premium Admin Template

AdminCP

Spina – Premium Admin Template + Tablet Theme

Cupcake – Premium Admin Template + Mobile Theme

xSystem – HTML5 and CSS3 Admin Template

Mandy Lane Premium Admin Template

It’s Brain – premium admin theme

vPad – HTML5+CSS3 App Framework

Adminium – Modern Admin Panel Interface

Peach – Clean & Smooth Admin Template

Lagu Admin Premium Template

Ready Made Admin – Full Featured Admin Theme

Grape – Professional & Flexible Admin Template

Chameleon Circuit – Full Featured Admin Theme

Admin Control Panel v2

White Label – a full featured Admin Skin

 

1210月/120

31个国外社会化媒体运营管理系统一览

发布在 邵珠庆

随着企业使用社会化媒体的深入,聚集了越来越多的粉丝,企业也面临了很多单靠人力和创意所不能解决的问题,如有效倾听,大规模的数据挖掘和分析,多账户管理以及效果的评估等,这就需要借助于一些工具,比如国外一些热门的如buddy media,Hootsuite等,本文就汇集了国外30多家社会化媒体运营管理系统,供参考。

为什么要使用社会化媒体运营管理系统

痛点:社会化媒体团队需要应对分散的交流内容

我将从战略家LaSandra Brill得到一些能够使社会化营销者在多个渠道快速管理、维护和生成报告的新技术的介绍和要求。因为缺乏规模的问题引起了社会化战略家们的共鸣,市场正在开发一种新工具。它是社会化客户关系管理系统的一个组成部分,如果您还没有听过社会化客户关系管理,请阅读社会化客户关系管理的18个应用案例报告(更新:这只是您首先需要了解的全部社会化商业应用体系中的一个软件细分领域,见下图)

The Social Business Stack: 7 Categories, 18 Discrete Classes, for 2011

更新日期:2012年1月5日

经对这个新市场大约2年的观察,Altimeter出版了一个将正在增加的供应商细分的报告。《管理社会化媒体扩散策略

解决方案:社会化媒体管理系统正在升起,如同用于网站集中管理的内容管理系统和网站管理系统,社会化媒体管理系统给予社会化媒体团队从一个地点管理多个分散社会化渠道的能力,给予团队通过一次操作在多个渠道建立深入关系的可能。

定义:社会化媒体管理系统是管理不同的社会化媒体环境下工作流程的程序集合。这些程序,可以手动或以计算机为基础,使管理者从一个工具倾听,汇总,发布和管理多个社会化媒体渠道。

它是如何工作:最基本意义上的三个简单功能,这些管理工具执行下列操作:1)连接Facebook,Twitter,LinkedIn等社会媒体渠道。 2)允许管理者迅速从一个位置向这些渠道发布内容,一些还提供每个通道可以定制发布的能力3)聚集和管理社会化数据。该系统提供允许管理者(从评论意见中)看到正在发生什么的聚合视图,并可提供某种形式的分析和转换指标。

 

社会媒体管理系统名单(SMMS

按母公司字母顺序排列,而不是优先或能力。

1.Argyle Social

提供发布和调度,管理社会化收件箱和评测工具的功能,并有贴牌服务的解决方案。

2.Awareness Networks, Social Marketing Hub

企业级社区平台,已经推出了自己的工具,提供Facebook、YouTube、Flickr、Twitter和自己社区相连的功能。特别是,这是一个现有的企业级供应商(以前我发表过对他们进行彻底研究的报告),这预示着其潜在的服务,支持能力和市场生存的水平。

3.Buddy Media

拥有一套管理工具,帮助品牌管理Facebook,Twitter,并提供监测和报告。你会发现品牌和机构的重叠。在他们网站上有大品牌和媒体的案例研究。

4.Constant Contact

购买具有关键字监控的Nutshell Mail邮件系统,可以使小企业主,收到他们的社交账户预警。在2月28日,他们收购的SCRM公司Bantam Live具有一些销售和营销的SMMS功能。

5.Context Optional

为调整Facebook页面提供管理工具

6.Conversocial

提供解决方案,帮助管理者在大多数社交网络如Facebook和Twitter,计划更新和学习什么类型的内容与你的粉丝和追随者能产生共鸣

7.CoTweet

最近被ExactTarget收购。他们提供Twitter整合工具,日程安排,工作流管理,倾听工具,多作者管理,和仪表板管理工具

8.Distributed Engagement Channel

由DEC系统提供内容发布,调整用户产生内容(UGC)的提交,并跟踪和优化信道性能。他们也有如ID整合,媒体处理和报告的功能。

9.Engage Sciences

允许营销人员在Facebook,Twitter,LinkedIn和企业网站开展社会化促销,与客户互动,同时汇总,过滤和储存来自全国各地的社会网络的信息流,让企业轻松展示倡导者的声音。

10.Engage121

本业务的重点是:通过连贯一致的社会媒体消息加强品牌形象,使当地网点获取社会媒体工具,增强社会化的接触,调动员工作为品牌大使,监测和管理成千上万的当地代理商和专营店的权限。

11. Expion

允许大型企业发布和聚合社会媒体的谈话,可以扩展到数百个本地Facebook网页,Twitter账户,和YouTube频道。该工具有跨越这些渠道倾听,发布,管理,响应,治理,并收集情报的能力。

12.Hootsuite

集成Facebook和LinkedIn帐户。 以前,你可以通过Ping.fm功能更新Facebook和LinkedIn。 现在不同了,对待Facebook和LinkedIn帐户如同对待Twitter帐户:您可以在这些社会化网络中创建专栏, 读你朋友的状态更新,并更新多个Facebook帐户。 Facebook的整合提供及时的评论功能。

13.Involver

观众管理平台,提供营销人员内容发布,监管交流内容,管理应用程序,并跟踪性能的解决方案。

14.MediaFunnel

提供与Facebook和Twitter的集成。他们有几个基于工作流程的许可,包括各种的角色,如贡献者,管理员,出版商。这类似传统的CMS系统中使用的编辑过程。

15.MessageMaker

一个社会的媒体管理系统(SMMS),让您发布和管理大量跨社交互动点的有针对性的内容,同时产生可操作的情报。

16.Moderation Marketplace

提供社会化媒体管理和内容聚合解决方案,根据您的品牌提供给您的客户内容。

17.Mutual Mind

提供品牌监测,工作流程的许可以及报告工具。

18.Objective Marketer

提供管理者按照营销活动将信息结构化能力,功能包括用户管理,角色和权限管理,工作流程,内容日程安排,整合,分析和报告。他们告诉我,Objective Marketer目前的客户构成60%是企业的,30%是机构和10%是博主/独立顾问。 (2011年1月,Objective Marketer被Email Vision收购)

19.Postling

允许单个的客户或品牌从一个单一的管理系统管理像博客,Facebook粉丝页面,Twitter帐户,Flickr帐户这样的资产。也有评论聚合以及团队之间的工作流程。

20.Seesmic

Seesmic提供Twitter,Facebook,LinkedIn,Ping.fm,Foursquare和Google BUZZ多个账户的支持。还提供iPhone、Android、 WP7和黑莓平台的应用。语言翻译支持包括:英语、汉语、法语、德语、日语、葡萄牙语、罗马尼亚语、西班牙语和更多。 Seesmic已收到来自Salesforce的投资,并有一个集成的聊天产品。

21.Shoutlet

提供一个多用户的应用,帮助全球知名品牌、小企业和营销机构通过一个平台建设,参与,并衡量他们的社会化媒体营销传播。

22. SocialVolt

提供一个完整的社会化媒体管理平台,整合公司与他们在社会化网络上的客户成功地进行交互需要的所有工具。

23.SpredFast

是后起之秀,这个位于奥斯汀的公司提供核心功能,并声称有40%的企业客户群。他们与Convio、 Radian6、Crimson Hexagon、 Sysomos,、Trackkr、 IBM、Porter Novelli,、Sierra Club,、HomeAway建立合作伙伴。他们的产品定位为协作活动管理,提供内容调度功能,类似于FriendFeed上的事件和社会流整合功能。

24.Sprinklr

提供社交媒体管理工具,他们的网站在发布前有很强的倾听聚焦功能,这很有趣。

25.SproutSocial

SproutSocial带来帮助你倾听,参与和建立忠诚度,增加你的观众和您的业务的一切功能。

26.Strongmail

传统的电子邮件营销平台,提供营销活动多级分享活动方式和转换的跟踪,到达分析,交流活动, Facebook粉丝墙的反馈。

27.Syncapse (formerly SocialTalk)(原名SocialTalk)

提供与Twitter、Facebook、WordPress和MoveableType的集成,这种管理工具提供治理,工作流程,调度等功能。

28.Targeted

Targeted的企业社会门户,一个社会媒体管理系统,是特别为大型企业网络,渠道管理和分销网络设计的。ESP™是有针对性的专为集团的内容同步开发,并授权最终用户,同时降低企业管理的工作量。该平台不仅允许经企业认可的消息在本地发布,也支持社会网络数据的聚集和社会数据情报报告度量。

29. Vitrue

社会媒体管理系统,具有与Facebook和Twitter集成,提供调度的功能,能够连接多个Facebook网页。

30.Webtrends

提供了一个解决方案,帮助营销人员快速定义和执行社会营销策略。解决方案是以满足不同的社会营销需求为目的提供自助和全方位的服务套餐。

31.Wildfire

提供社会化抽奖活动,促进口碑以及从他们的平台发布到多个社交网络的管理功能,分析功能。

退市

这类厂商从未进入市场或进入死池。

KeenKong 提供类似管理工具的仪表板,不仅汇聚了来自Twitter和Facebook的交流内容,还试图从自然语言处理中发现内容的意义。 (更新2011年3月,自此还未发布产品).

使用社会化媒体运营管理工具的指导原则

你进入市场,并利用这些工具之前,首先要遵循这一指导原则。

1.从市场中获取人气,避免社会化媒体喷涌:

仅仅因为你能,并不意味着你应该。漫无目的地喷企业内容到每一个知名的社会化媒体渠道,可能使你的生活更容易,但作为一名营销人士,可能会导致社区的信任有严重的后果。记住这像联谊会,每一个兄弟会成员有不同的关系,话题,兴趣,不要以为一种类型的内容将适用于所有。

2.这是人的愚蠢,不要地毯式轰炸:

对社会的承诺之一,是与客户建立有意义的关系,传统的喷涌和祈祷的营销策略不适用。通过使用这些工具,你可能错过了可以是更深更多忠诚度的真实的关系,及倡导的好处,。

3.不要分散的太薄:

在任何时候在所有地方都可以意味着你并不存在。选择你的战场,并记住,LinkedIn的社区的需求与MySpace的远远不同,选择前要先知道你的客户群社会化性。


在你已经建立一个社会化的战略后使用这些工具,

每种技术都有积极以及不利的一面,总是要有权衡。虽然这些工具可以帮助社会战略家管理不可扩展的情况 – 他们有缺点:

行业见解:商品的功能,总伴随着潮流的要求

预计几乎每一个社区平台(有超过100个)都会推出这些功能,迅速地被专注于此的初创企业跟随,然后是CoTweets或者类似Seesmic的其他Twitter平台迅速进入企业领域。在几个季度内,预计传统的CMS和WMS企业能终于醒悟过来,并采取相关的动作;在Salesforce AppExchange的应用程序开发者能推出自己的产品。从长远来看,这将只是整体社会化商业软件商品的功能集,但会是社交型CRM的一个重要组成部分。

如果你知道某一个供应商提供这些功能,请留言,我会仔细看看,并计划与这些厂商的一些简报。注:我对这篇文章的修改了很多,它几乎处于实时修改中。

166月/120

有效管理电脑文件

发布在 邵珠庆

成堆的有用无用的纸、杂乱无章的书籍和办公用品散落在各处,这就是我们办公桌上的一般情形。在电脑的内部,在电脑的桌面上,在"资源管理器"中,也同样充斥着无序与混乱。这种虚拟的混乱极大地影响了电脑的性能和我们办公的效率,当许多人面临这个问题时,认为硬盘空间又不够了,电脑性能又不跟不上了,需要再换一台新的电脑了。事实上,我们真正需要的是坐下来,好好花时间将电脑里的文件真正管理起来,会为自己日后省下更多的时间。

文件管理的真谛在于方便保存和迅速提取,所有的文件将通过文件夹分类被很好地组织起来,放在你最能方便找到的地方。解决这个问题目前最理想的方法就是分类管理,从硬盘分区开始到每一个文件夹的建立,我们都要按照自己的工作和生活需要,分为大大小小、多个层级的文件夹,建立合理的文件保存架构。此外所有的文件、文件夹,都要规范化地命名,并放入最合适的文件夹中。这样,当我们需要什么文件时,就知道到哪里去寻找。这种方法,对于相当数量的人来说,并不是一件轻松的事,因为他们习惯了随手存放文件和辛苦、茫无头绪地查找文件。下面,我们将帮你制订一套分类管理的原则,并敦促您养成好的文件管理习惯。以下是我们总结出的一些基本技巧,这些技巧并不是教条,可能并不适合你,但无论如何你必须要有自己的规则,并坚持下来,形成习惯。

第一招 发挥我的文档的作用

有很多理由让我们好好地利用"我的文档",它能方便地在桌面上、开始菜单、资源管理器、保存/打开窗口中找到,有利于我们方便而快捷地打开、保存文件。我们可以利用"我的文档"中已有的目录,也可以创建自己的目录,将经常需要访问的文件存储在这里。至于"我的文档"存储在C盘,在重装系统时可能会误删除的问题,可以在非系统盘建立一个目录,然后右击桌面上的"我的文档",选择"属性"。在弹出的"我的文档 属性"窗口中,单击目标文件夹下的"移动"按钮,然后在新的窗口中指定我们刚创建的文件夹。重装系统后再次执行以上操作,再重新指向此文件夹即可,即安全又便捷。

小提示

如果你使用Windows 2000/XP,则移动"我的文档"文件夹时,其下的所有文件会自动移过去,但如果你使用Windows 9x,则需要手工将C:/My Documents下的所有文件手工移到新指定的文件夹中,否则可能会丢失数据。

第二招 建立最适合自己的文件夹结构

文件夹是文件管理系统的骨架,对文件管理来说至关重要。建立适合自己的文件夹结构,需要首先对自己接触到的各种信息、工作和生活内容进行归纳分析。每个人的工作和生活有所不同,接受的信息也会有很大差异,因此分析自己的信息类别是建立结构的前提。比如,有相当多的IT自由撰稿人和编辑就是以软件、硬件的类别建立文件夹;而很多老师,就是以自己的工作内容比如教学工作、班主任工作建立文件夹。 

同类的文件名字可用相同字母前缀的文件来命名,同类的文件最好存储在同一目录,如图片目录用image,多媒体目录用media,文档用doc等等,简洁易懂,一目了然,而且方便用一个软件打开。这样,当我们想要找到一个文件时,能立刻想到它可能保存的地方。

第三招 控制文件夹与文件的数目

文件夹里的数目不应当过多,一个文件夹里面有50个以内的文件数是比较容易浏览和检索的。如果超过100个文件,浏览和打开的速度就会变慢且不方便查看了。这种情况下,就得考虑存档、删除一些文件,或将此文件夹分为几个文件或建立一些子文件夹。另一方面,如果有文件夹的文件数目长期只有少得可怜的几个文件,也建议将此文件夹合并到其他文件夹中。

第四招 注意结构的级数

分类的细化必然带来结构级别的增多,级数越多,检索和浏览的效率就会越低,建议整个结构最好控制在二、三级。另外,级别最好与自己经常处理的信息相结合。越常用的类别,级别就越高,比如负责多媒体栏目的编辑,那多媒体这个文件夹就应当是一级文件夹,老师本学期所教授的课程、所管理班级的资料文件夹,也应当是一级文件夹。文件夹的数目,文件夹里文件的数目以及文件夹的层级,往往不能两全,我们只能找一个最佳的结合点。

第五招 文件和文件夹的命名

为文件和文件夹取一个好名字至关重要,但什么是好名字,却没有固定的含义,以最短的词句描述此文件夹类别和作用,能让你自己不需要打开就能记起文件的大概内容,能就是好的名称。要为电脑中所有的文件和文件夹使用统一的命名规则,这些规则需要我们自己来制订。最开始使用这些规则时,肯定不会像往常一样随便输入几个字那样轻松,但一旦你体会到了规则命名方便查看和检索的好处时,相信你会坚持不懈地执行下去。

另外,从排序的角度上来说,我们常用的文件夹或文件在起名时,可以加一些特殊的标示符,让他们排在前面。比如当某一个文件夹或文件相比于同一级别的来说,要访问次数多得多时,笔者就会在此名字前加上一个"1"或"★",这可以使这些文件和文件夹排列在同目录下所有文件的最前面,而相对次要但也经常访问的,就可以加上"2"或"★★",以此类推。

此外,文件名要力求简短,虽然Windows已经支持长文件名了,但长文件名也会给我们的识别、浏览带来混乱。

第六招 注意分开要处理的与已经完成的

如果一年前的文件还和你现在正要处理的文件摆在一起,如果几个月前的邮件还和新邮件放在一块,那你将会很难一眼找到你想要的东西。及时地处理过期的文件,备份该备份的,删除不需要的,是一个良好的习惯。以老师为例,上学期教授课程的教案与资料,本学期使用的频率会非常小,所以应当专门将到存放后另一个级别较低的文件夹中,甚至于刻录到光盘中。而并本学期的一些文档,因为要经常访问,最好放置在"我的文档"中以方便时时访问。对于老师来说,一个学期就是一个周期,过一个周期,就相应地处理本周期的文件夹。对于其他行业的人来说,也有不同的周期,我们要根据自己的实际工作和生活需要对文件夹、文件进行归档。

小提示

为了数据安全,及时备份是必需要的

第七招 发挥快捷方式的便利

如果我们经常要快速访问文件或文件夹,那可以右击选择"创建快捷方式",再将生成的快捷方式放置到你经常停留的地方。当然,当文件和文件夹不再需要经常访问时,你需要及时将快捷方式删除,以免快捷方式塞堵了太多空间或牵扯了你的注意力。

第八招 现在开始与长期坚持

建立完善的结构、规范化地命名、周期性地归档,这就是我们要做的。这并不复杂的操作却能大大提高我们的工作效率,节省我们已经很有限的时间。
如果你现在就开始,那请首先拿出一张纸,明了你的信息类别,明确准备创建的文件夹个数与位置,还有为重要的文件夹制订文件命名规则及归档规则。然后按此规则将电脑中已经存在的大量信息进行移动、更名、删除等操作,而且要在以后操作中克服自己的陋习。

也许开头会很难,也许规则会很繁琐,但相信过不了多久,你就已经习惯于看到井井有条的文件与文件夹,并享受高效管理带来的快乐了

   下一页