2009年1月24日星期六

天之大

妈妈 月光之下
静静地 我想你了
静静淌在血里的牵挂
妈妈 你的怀抱
我一生爱的襁褓
有你晒过的衣服味道

妈妈 月亮之下
有了你 我才有家
离别虽半步即是天涯
思念 何必泪眼
爱长长 长过天年
幸福生于会痛的心田

天之大
唯有你的爱 是完美无瑕
天之涯 记得你用心传话

天之大
唯有你的爱 我交给了他
让他的笑像极了妈妈

2009年1月21日星期三

socket(AF_INET, SOCK_RAW, IPPROTO_IP)的意思

From: http://hi.baidu.com/wjq_qust/blog/item/651542547ee8a651564e00b3.html

int socket (int domain, int type, int protocol);

1 参数protocol用来指明所要接收的协议包,如果是象IPPROTO_TCP(6)这种非0、非255的协议,当操作系统内核碰到ip头中protocol域和创建socket所使用参数protocol相同的IP包,就会交给这个raw socket来处理,因此,一般来说,要想接收什么样的数据包,就应该在参数protocol里来指定相应的协议。当内核向此raw socket交付数据包的时候,是包括整个IP头的,并且已经是重组好的IP包。

2 如果protocolIPPROTO_RAW(255),这时候,这个socket只能用来发送IP包,而不能接收任何的数据。发送的数据需要自己填充IP包头,并且自己计算校验和。

3 对于protocol0IPPROTO_IP)raw socket。用于接收任何的IP数据包。其中的校验和和协议分析由程序自己完成。

这是include/linux/in.h里的定义:

/* Standard well-defined IP protocols. */

enum {

IPPROTO_IP = 0, /* Dummy protocol for TCP */

IPPROTO_ICMP = 1, /* Internet Control Message Protocol */

IPPROTO_IGMP = 2, /* Internet Group Management Protocol */

IPPROTO_IPIP = 4, /* IPIP tunnels (older KA9Q tunnels use 94) */

IPPROTO_TCP = 6, /* Transmission Control Protocol */

IPPROTO_EGP = 8, /* Exterior Gateway Protocol */

IPPROTO_PUP = 12, /* PUP protocol */

IPPROTO_UDP = 17, /* User Datagram Protocol */

IPPROTO_IDP = 22, /* XNS IDP protocol */

IPPROTO_DCCP = 33, /* Datagram Congestion Control Protocol */

IPPROTO_RSVP = 46, /* RSVP protocol */

IPPROTO_GRE = 47, /* Cisco GRE tunnels (rfc 1701,1702) */

IPPROTO_IPV6 = 41, /* IPv6-in-IPv4 tunnelling */

IPPROTO_ESP = 50, /* Encapsulation Security Payload protocol */

IPPROTO_AH = 51, /* Authentication Header protocol */

IPPROTO_BEETPH = 94, /* IP option pseudo header for BEET */

IPPROTO_PIM = 103, /* Protocol Independent Multicast */

IPPROTO_COMP = 108, /* Compression Header protocol */

IPPROTO_SCTP = 132, /* Stream Control Transport Protocol */

IPPROTO_UDPLITE = 136, /* UDP-Lite (RFC 3828) */

IPPROTO_RAW = 255, /* Raw IP packets */

IPPROTO_MAX

};

以太网Protocol Numbers

from: http://www.iana.org/assignments/protocol-numbers


Protocol Numbers
(last updated 2008-04-18)

Registries included below:
- Assigned Internet Protocol Numbers


Registry Name: Assigned Internet Protocol Numbers
Reference: [RFC5237]
Registration Procedures: IESG Approval or Standards Action
Note: In the Internet Protocol version 4 (IPv4) [RFC791] there is a field
called "Protocol" to identify the next level protocol. This is an 8
bit field. In Internet Protocol version 6 (IPv6) [RFC1883], this field
is called the "Next Header" field.

Registry:
Decimal Keyword Protocol References
------- --------------- --------------------------------------- ------------------
0 HOPOPT IPv6 Hop-by-Hop Option [RFC1883]
1 ICMP Internet Control Message [RFC792]
2 IGMP Internet Group Management [RFC1112]
3 GGP Gateway-to-Gateway [RFC823]
4 IP IP in IP (encapsulation) [RFC2003]
5 ST Stream [RFC1190][RFC1819]
6 TCP Transmission Control [RFC793]
7 CBT CBT [Ballardie]
8 EGP Exterior Gateway Protocol [RFC888][DLM1]
9 IGP any private interior gateway [IANA]
(used by Cisco for their IGRP)
10 BBN-RCC-MON BBN RCC Monitoring [SGC]
11 NVP-II Network Voice Protocol [RFC741][SC3]
12 PUP PUP [PUP][XEROX]
13 ARGUS ARGUS [RWS4]
14 EMCON EMCON [BN7]
15 XNET Cross Net Debugger [IEN158][JFH2]
16 CHAOS Chaos [NC3]
17 UDP User Datagram [RFC768][JBP]
18 MUX Multiplexing [IEN90][JBP]
19 DCN-MEAS DCN Measurement Subsystems [DLM1]
20 HMP Host Monitoring [RFC869][RH6]
21 PRM Packet Radio Measurement [ZSU]
22 XNS-IDP XEROX NS IDP [ETHERNET][XEROX]
23 TRUNK-1 Trunk-1 [BWB6]
24 TRUNK-2 Trunk-2 [BWB6]
25 LEAF-1 Leaf-1 [BWB6]
26 LEAF-2 Leaf-2 [BWB6]
27 RDP Reliable Data Protocol [RFC908][RH6]
28 IRTP Internet Reliable Transaction [RFC938][TXM]
29 ISO-TP4 ISO Transport Protocol Class 4 [RFC905][RC77]
30 NETBLT Bulk Data Transfer Protocol [RFC969][DDC1]
31 MFE-NSP MFE Network Services Protocol [MFENET][BCH2]
32 MERIT-INP MERIT Internodal Protocol [HWB]
33 DCCP Datagram Congestion Control Protocol [RFC4340]
34 3PC Third Party Connect Protocol [SAF3]
35 IDPR Inter-Domain Policy Routing Protocol [MXS1]
36 XTP XTP [GXC]
37 DDP Datagram Delivery Protocol [WXC]
38 IDPR-CMTP IDPR Control Message Transport Proto [MXS1]
39 TP++ TP++ Transport Protocol [DXF]
40 IL IL Transport Protocol [Presotto]
41 IPv6 Ipv6 [Deering]
42 SDRP Source Demand Routing Protocol [DXE1]
43 IPv6-Route Routing Header for IPv6 [Deering]
44 IPv6-Frag Fragment Header for IPv6 [Deering]
45 IDRP Inter-Domain Routing Protocol [Hares]
46 RSVP Reservation Protocol [Braden]
47 GRE General Routing Encapsulation [Li]
48 DSR Dynamic Source Routing Protocol [RFC4728]
49 BNA BNA [Salamon]
50 ESP Encap Security Payload [RFC2406]
51 AH Authentication Header [RFC2402]
52 I-NLSP Integrated Net Layer Security TUBA [GLENN]
53 SWIPE IP with Encryption [JI6]
54 NARP NBMA Address Resolution Protocol [RFC1735]
55 MOBILE IP Mobility [Perkins]
56 TLSP Transport Layer Security Protocol [Oberg]
using Kryptonet key management
57 SKIP SKIP [Markson]
58 IPv6-ICMP ICMP for IPv6 [RFC1883]
59 IPv6-NoNxt No Next Header for IPv6 [RFC1883]
60 IPv6-Opts Destination Options for IPv6 [RFC1883]
61 any host internal protocol [IANA]
62 CFTP CFTP [CFTP][HCF2]
63 any local network [IANA]
64 SAT-EXPAK SATNET and Backroom EXPAK [SHB]
65 KRYPTOLAN Kryptolan [PXL1]
66 RVD MIT Remote Virtual Disk Protocol [MBG]
67 IPPC Internet Pluribus Packet Core [SHB]
68 any distributed file system [IANA]
69 SAT-MON SATNET Monitoring [SHB]
70 VISA VISA Protocol [GXT1]
71 IPCV Internet Packet Core Utility [SHB]
72 CPNX Computer Protocol Network Executive [DXM2]
73 CPHB Computer Protocol Heart Beat [DXM2]
74 WSN Wang Span Network [VXD]
75 PVP Packet Video Protocol [SC3]
76 BR-SAT-MON Backroom SATNET Monitoring [SHB]
77 SUN-ND SUN ND PROTOCOL-Temporary [WM3]
78 WB-MON WIDEBAND Monitoring [SHB]
79 WB-EXPAK WIDEBAND EXPAK [SHB]
80 ISO-IP ISO Internet Protocol [MTR]
81 VMTP VMTP [DRC3]
82 SECURE-VMTP SECURE-VMTP [DRC3]
83 VINES VINES [BXH]
84 TTP TTP [JXS]
85 NSFNET-IGP NSFNET-IGP [HWB]
86 DGP Dissimilar Gateway Protocol [DGP][ML109]
87 TCF TCF [GAL5]
88 EIGRP EIGRP [CISCO][GXS]
89 OSPFIGP OSPFIGP [RFC1583][JTM4]
90 Sprite-RPC Sprite RPC Protocol [SPRITE][BXW]
91 LARP Locus Address Resolution Protocol [BXH]
92 MTP Multicast Transport Protocol [SXA]
93 AX.25 AX.25 Frames [BK29]
94 IPIP IP-within-IP Encapsulation Protocol [JI6]
95 MICP Mobile Internetworking Control Pro. [JI6]
96 SCC-SP Semaphore Communications Sec. Pro. [HXH]
97 ETHERIP Ethernet-within-IP Encapsulation [RFC3378]
98 ENCAP Encapsulation Header [RFC1241,RXB3]
99 any private encryption scheme [IANA]
100 GMTP GMTP [RXB5]
101 IFMP Ipsilon Flow Management Protocol [Hinden]
102 PNNI PNNI over IP [Callon]
103 PIM Protocol Independent Multicast [Farinacci]
104 ARIS ARIS [Feldman]
105 SCPS SCPS [Durst]
106 QNX QNX [Hunter]
107 A/N Active Networks [Braden]
108 IPComp IP Payload Compression Protocol [RFC2393]
109 SNP Sitara Networks Protocol [Sridhar]
110 Compaq-Peer Compaq Peer Protocol [Volpe]
111 IPX-in-IP IPX in IP [Lee]
112 VRRP Virtual Router Redundancy Protocol [RFC3768]
113 PGM PGM Reliable Transport Protocol [Speakman]
114 any 0-hop protocol [IANA]
115 L2TP Layer Two Tunneling Protocol [Aboba]
116 DDX D-II Data Exchange (DDX) [Worley]
117 IATP Interactive Agent Transfer Protocol [Murphy]
118 STP Schedule Transfer Protocol [JMP]
119 SRP SpectraLink Radio Protocol [Hamilton]
120 UTI UTI [Lothberg]
121 SMP Simple Message Protocol [Ekblad]
122 SM SM [Crowcroft]
123 PTP Performance Transparency Protocol [Welzl]
124 ISIS over IPv4 [Przygienda]
125 FIRE [Partridge]
126 CRTP Combat Radio Transport Protocol [Sautter]
127 CRUDP Combat Radio User Datagram [Sautter]
128 SSCOPMCE [Waber]
129 IPLT [Hollbach]
130 SPS Secure Packet Shield [McIntosh]
131 PIPE Private IP Encapsulation within IP [Petri]
132 SCTP Stream Control Transmission Protocol [Stewart]
133 FC Fibre Channel [Rajagopal]
134 RSVP-E2E-IGNORE [RFC3175]
135 Mobility Header [RFC3775]
136 UDPLite [RFC3828]
137 MPLS-in-IP [RFC4023]
138 manet MANET Protocols [RFC-ietf-manet-iana-07.txt]
139 HIP Host Identity Protocol [RFC5201]
140-252 Unassigned [IANA]
253 Use for experimentation and testing [RFC3692]
254 Use for experimentation and testing [RFC3692]
255 Reserved

VxWorks 操作系统学习笔记

From: http://www.dzkf.cn/html/qianrushixitong/2007/0312/1722.html
任务:在执行时每个程序都被称之为任务。VxWorks操作系统中,任务可以直接地或者以共享方式访问大多数系统资源,为了维护各自的线程,每个任务必须保持有足够的上下文环境。

(1) 任务状态:
就绪(READY):该状态时任务仅等待CPU的状态,不等待其他任何资源。
阻塞(PEND):任务由于一些资源不可用而被阻塞时的状态。
睡眠(DELAY):出于睡眠的任务状态。
挂起(SUSPEND):该状态时任务不执行,主要用于调试用。挂起仅仅约束任务的执行,并不约束状态的转换,因此pended-suspended状态时任务可以解锁,delayed-suspended状态时任务可以唤醒。
DELAY+S:既处于睡眠又处于挂起的任务状态。
PEND+S:既处于阻塞又处于挂起的任务状态。
PEND+T:带有超时值处于阻塞的任务状态。
PEND+S+T:带有超时值处于阻塞,同时又处于挂起的任务状态。
state+I:任务处于state且带有一个继承优先级。
***********************************************
ready ——> pended semTake () / msgQReceive ()
ready ——> delayed taskDelay ()
ready ——> suspended taskSuspend ()
pended ——> ready semGive () / msgQSend ()
pended ——> suspended taskSuspend ()
delayed ——> ready expired delay
delayed ——> suspended taskSuspend ()
suspended ——> ready taskResume () / taskActivate ()
suspended ——> pended taskResume ()
suspended ——> delayed taskResume()
*********************************************

(2) Wind任务调度
在Wind内核中,默认算法是基于优先级的抢占式调度算法,也可以使用轮转调度算法。
任务调度控制函数:
***********************************************
调用 描述
kernelTimeSlice() 控制轮转调度
taskPrioritySet() 改变任务优先级
taskLock() 禁止任务调度
taskUnlock() 允许任务调度
***********************************************

基于优先级的抢占式任务调度:
当一个新任务优先级高于系统当前执行任务的优先级时,它将抢占CPU执行。因此,系统内核将确保CPU分配给处于就绪状态的具有最高优先级的任务执行。
缺点:当多个相同优先级的任务需要共享一台处理器时,如果某个执行的任务永不阻塞,那么它将一直独占处理器,其他相同优先级的任务就没有机会执行。

轮转式调度:
当所有相同优先级的任务处于就绪状态时,轮转算法倾向于平均使用CPU,对于所有相同优先级的任务,通过时间片获得相同的CPU处理时间。

抢占上锁:
通过调用taskLock()和taskUnlock()函数,可以禁止使用Wind内核调度程序或启用Wind内核调度程序。当禁止使用调度程序时,若该任务正在执行,不会发生基于优先级的抢占。
抢占上锁只能阻止任务的上下文切换,并不禁止中断。

taskLock()和intLock()比较

任务优先级:所有应用任务的优先级应该在100-250之间;但是驱动程序支持的任务(与中断服务程序关联的任务)优先级能够位于51-99。

(3) 任务异常处理:

(4) 共享代码和重入
VxWorks操作系统中,大多数函数是可重入的。但若存在一个对应于命名为someName_r()的函数,someName() 因作为函数重入的版本将认为是不可重入的。例如,ldiv() 有一个对应函数ldiv_r(),则ldiv() 是不可重入的。

重入技术:
. 动态堆栈变量
. 被信号保护的全局和静态变量
. 任务变量:taskVarAdd(), taskVarDelete()和taskVarGet()

(5) 操作系统任务VxWorks
. tUserRoot:内核执行的首个任务,入口点是安装目录/target/config/all/usrConfig.c下函数usrRoot(),可初始化VxWorks操作系统的大部分程序,发起诸如日志任务、异常处理任务、网络任务和tRlogind后台程序。正常情况下根任务在所有初始化结束后,终止任务并且被删除。
. tLogTask:日志任务
. tExcTask:异常处理任务,必须拥有系统的最高优先级。
. tNetTask:网络任务,用于VxWorks网络任务级程序处理。通常配置INCLUDE_NET_LIB组件的VxWorks操作系统可以发起网络任务。
. tWdbTask:目标代理任务,用INCLUDE_WDB组件配置的VxWorks操作系统包括目标代理功能。
. 可选组建的任务
. tShell
. tRlogind
. tTelnetd
. tPortmapd

2. 任务间通信
(1) 共享内存,数据的简单共享
在VxWorks操作系统中所有任务存在于一个单独的线性地址空间中,所以任务间共享数据结构是很容易实现的。全局变量、线性缓冲、环形缓冲、连接链和指针都可以被运行在不同上下文中的代码直接引用。

(2) 信号量,基本的互斥和同步
. 实现资源互斥访问的方法包括:
中断上锁(中断上锁时不要调用VxWorks操作系统函数,强行使用会导致意外的中断):intLock() 和intUnlock()
抢占上锁:taskLock() 和taskUnlock()
信号量对资源的上锁

. VxWorks操作系统中的信号量类型
二进制,最快最通用的信号量,适用于同步和互斥。
互斥,为解决内在互斥问题、优先级继承、删除安全以及递归问题等而最优化的一种特殊二进制信号量。
计数,类似于二进制信号量,但其跟踪信号量被释放的次数,适用于单个资源多个实例需要保护的情况。

. 队列类型:
SEM_Q_PRIORITY:根据优先级顺序
SEM_Q_FIFO:根据先进先出顺序

. 二进制信号量
B-Semaphore.png
. 互斥信号量
基本行为与二进制信号量一致,不同之处如下:
仅用于互斥;
仅能由提取它(即调用semTake())的任务释放;
不能在中断服务程序中释放;
semFlush()函数操作非法;
.. 优先级倒置:互斥信号量选项SEM_INVERSION_SAF能够继承优先级算法,优先级继承协议确保在资源阻塞的所有任务中优先级最高的且拥有资源执行资格的任务将优先执行。一旦任务的优先级被提高,它以提高后的优先级执行;直到释放其占有的全部互斥信号量后,该任务将返回到正常或者标准的优先级。该选项要求与优先级队列(SEM_Q_PRIORITY)一起使用。
.. 删除安全:一个受信号量保护的临界区域内经常需要保护执行任务避免被意外地删除。删除一个在临界区执行的任务可能会导致意想不到的后果。原语 semSafe()和semUnsafe()提供了一种任务安全的方法。但是在使用互斥信号量选项SEM_DELETE_SAFE时,每次使用 semTake()将隐含调用taskSafe(),使用semGive()将隐含调用taskUnsafe()。使用这种方式,任务在占用信号量时不会被删除。
.. 递归资源访问:互斥信号量能够递归获得。在释放信号量前,递归获取的互斥信号量被释放和提取的次数应该相等,这通过一个计数器跟踪实现。

. 计数器信号量
是实现任务同步和互斥的另一种手段,适用于保护多份复制的资源。

(3) 消息队列
在VxWorks操作系统里,单个CPU里任务间的主要通信方式使用消息队列。
***********************************************
调用 描述
msgQCreate() 分配并初始化一个消息队列
msgQDelete() 终止并释放一个消息队列
msgQSend() 向一个消息队列发送消息
msgQReceive() 从一个消息队列接收消息
***********************************************
消息的优先级:MSG_PRI_NORMAL和MSG_PRI_URGENT
中断服务程序能够向消息管道中写入,但不能从消息管道中读取。

(4) 管道
管道使用VxWorks操作系统中的I/O系统,并提供替换消息队列的接口。管道是由驱动程序pipeDrv管理的虚拟I/O设备,任务能够使用标准I/O 对管道进行打开、读取或写入等操作,另外也可以调用函数ioctl。
与消息管道类似,中断服务程序能够向管道写入,但不能从管道读取。

(5) 任务间网络通信
套接字Sockets

远程程序调用RPC

(6) 信号
VxWorks支持软件信号功能。信号可以异步改变任务的控制流程。任何任务或中断服务程序可以向指定任务发送信号。接收到信号的任务立即挂起当前的执行线程,在下次调度执行时转而执行指定的信号处理程序。信号处理程序在接收任务的上下文中执行,并使用任务的堆栈。即使在任务被阻塞时,仍可调用信号处理程序。
通常信号处理程序可作为中断处理程序看待,任何导致调用程序阻塞的函数均不能在信号处理程序中调用。
Wind内核支持两种类型的信号接口:UNIX BSD风格的信号和POSIX兼容信号。为了简化设计,建议在一个应用程序中使用一种类型接口,不要混合使用不同接口。

基本信号函数:
***********************************************
POSIX 1003.1b兼容调用 UNIX BSD兼容调用 描述
signal() signal() 指定信号的处理程序
kill() kill() 向任务发送信号
raise() N/A 向自身发送信号
sigaction() sigvec() 检查或设置信号的处理程序
sigsuspend() pause() 挂起任务直至任务提交
sigpending() N/A 恢复一组用于传递而被阻塞的信号
sigemptyset() ----- ----------------- -----------------------------
sigfillset() ----
sigaddset() ------- sigsetmask() 设置信号屏蔽
sigdelset() -----
sigismember()
sigprocmask() sigsetmask() 设置阻塞信号的屏蔽
sigprocmask() sigblock() 增加到一组阻塞的信号中
***********************************************
信号发生通常与硬件中断相联系。例如总线出错、非法指令以及浮点数异常都可能产生某种信号。

3. 事件VxWorks
VxWorks事件是一种在任务和中断处理程序间,或任务和VxWorks结构体间的通信方式。在VxWorks事件上下文中,这些结构体被用作为资源,包括信号量和消息队列。只有任务能够接收事件;然而任务、中断处理程序或资源都可以发送事件。

(1) 事件pSOS
. 发送和接收事件
任务、中断服务程序以及资源都使用同一个应用编程接口ev_send()来发送事件。
对于从资源接收事件的任务来说,任务必须用资源寄存,而且请求资源在空闲时发送一系列指定的事件;这种资源可以使信号量,也可以是消息队列。

. 等待事件
任务能够从一个或多个资源等待多个事件。每个资源可以发送多个事件,同样任务也可以等待接收一个或多个事件。

. 事件的寄存
从资源接收事件时,资源只能寄存一个任务。如果另一个任务随后用同样的资源寄存,那么不会通知原先寄存的任务就自动解除原有的寄存。VxWorks事件寄存的处理与pPOS事件则不同。

. 空闲资源
当资源给任务发送事件表明空闲时,不意味着资源的空闲状态可以保留。因此,从资源等待事件的任务在资源空闲时被解除阻塞;但同时资源也可能被取走。
对于两个或两个以上的任务持续交换资源所有权的情况,资源虽然被释放,但并不处于空闲状态,所以资源将不会发送事件。

. 应用编程接口
***********************************************
函数 描述
ev_send() 给任务发送事件
ev_receive() 等待事件
sm_notify() 寄存一个被信号量告知可用的任务
q_notify() 寄存一个被消息队列告知有消息到来的任务
q_vnoify 寄存一个被可变长度的消息队列告知有消息到来的任务
***********************************************

(2) 事件VxWorks
VxWorks事件执行以pPOS事件为基石。

. 空闲资源定义
互斥信号量:当一个互斥信号量被释放并且在其上没有任务阻塞
二进制信号量:当没有任务占有或等待一个二进制信号量
计数器信号量:一个计数器信号量在其计数值非零且其上没有阻塞任务时
消息队列:队列中有消息存在,且没有等待该队列中消息而阻塞的任务

. VxWorks对pPOS事件的扩展
单任务资源寄存:在pPOS系统中一个任务用资源寄存发送pSOS事件时,它会无意地取消另一个已用该资源寄存的任务寄存,第一个用该资源寄存的任务将无限期地被阻止。VxWorks事件则提供了一个选项,在该选项中如果另一个任务已经用某个资源寄存了,则不允许第二个任务用该资源再寄存。如果第二个任务用该资源寄存,将返回一个错误。
立即发送选项:当一个pPOS任务用资源寄存时,即使寄存时资源处于空闲状态,也不会立即给任务发送时间。对于VxWorks事件,默认行为与之相同。然而,VxWorks事件提供了一个选项,即若该资源在寄存时处于空闲状态,该选项允许任务请求资源立即给其发送事件。
自动取消寄存选项:pPOS执行过程序要任务在从资源接收任务后明确地取消寄存。VxWorks执行提供一个选项,该选项可以通知资源仅发送一次事件,然后在发送后自动取消寄存。
自动解除资源堵塞:当删除资源(一个信号量或者消息队列时),调用函数semDelete()和msgQDelete()解除所有任务的挂起。在任务等待被删除资源发送事件时,该措施保护任务避免无限期地堵塞。然后任务继续执行,导致任务挂起的函数eventReceive()返回一个ERROR值。
事件25到32(VXEV25或0x01000000到VXEV32或0x80000000)用作系统保留用,VxWorks用户不可以使用这些事件。

(3) 比较API
***********************************************
VxWorks函数 pPOS函数 注释
eventSend ev_send 直接端口
eventReceive ev_receive 直接端口
eventClear VxWorks中的新功能
semEvStart sm_notify SemEvStart等价于用非零事件参数调用sm_notify
semEvStop sm_notify SemEvStop等价于用事件参数为0调用sm_notify
msgQEvStart q_vnotify msgQEvStart等价于用非零事件参数调用q_notify
msgQEvStop q_vnotify msgQEvStop等价于用事件参数为0调用q_notify
q_notify VxWorks没有一个固定长度的消息队列机制
***********************************************

4. 看门狗定时器
VxWorks包括一个看门狗定时器机制,允许任何C函数与一个特定的时间延时器联系。看门狗定时器作为系统时钟中断服务程序的一部分来维护。被看门狗定时器调用的函数通常作为系统时钟中断级的中断服务代码来执行。但如果内核由于某种原因不能立即执行能够函数(例如一个优先中断或者内核状态),函数将放在tExcTask工作队列中。tExcTask工作队列中的函数以tExcTask(通常是0)优先级来执行。
***********************************************
调用 描述
wdCreate() 分配并初始化一个看门狗定时器
wdDelete() 终止并释放一个看门狗定时器
wdStart() 启动一个看门狗定时器
wdCancel() 取消当前的一个计数的看门狗定时器
***********************************************
5. 中断服务代码
为了尽快地响应中断,VxWorks中断处理程序在所有任务上下文之外的一个特殊上下文内执行。因此,中断处理不涉及到任务上下文的切换。
***********************************************
调用 描述
intConnect() 设置中断处理的C程序
intContext() 如果是从中断级调用,返回真
intCount() 获得当前中断嵌套深度
intLevelSet() 设置处理器的中断屏蔽级
intLock() 禁止中断
intUnlock() 重新允许中断
intVecBaseSet() 设置向量基地址
intVecBaseGet() 得到向量基地址
intVecSet() 设置异常向量
intVecGet() 获得异常向量
***********************************************

调用中断服务程序函数存在着很多的限制。例如,在应用中断服务程序时不能使用printf(), malloc()和semTake()函数,但是可以使用semGive(), logMsg(), msgQSend()和bcopy()这样的函数。
产生这些限制的原因是由于中断服务程序不在一个固定的任务上下文中执行,而且没有任务控制块,因此所有中断服务程序必须共享一个单独的堆栈。

. 中断服务程序基本限制为禁止调用导致调用者堵塞的函数。
. malloc()和free()都要求获得信号量,中断服务程序不能调用任何用于创建或删除的函数。
. 中断服务程序不能通过VxWorks驱动程序来执行I/O操作,因为大多数的设备驱动器可能会堵塞等待设备的调用者,因此它们需要一个任务上下文。但VxWorks管道驱动器是个例外,它设计用于中断服务程序的写操作。
. VxWorks提供了一个记录功能,允许向系统任务平台打印文本信息。这个机制是专门为中断服务程序使用而设计的,同时它也是从中断服务程序打印信息的最常用方法。
. 中断服务程序同时禁止调用浮点协处理器函数。在VxWorks操作系统中,由intConnect()函数建立的中断驱动代码不能保存和恢复浮点寄存器。若中断服务程序需要使用浮点指令,则必须明确地保存和恢复fppArchLib中函数浮点协处理器的寄存器。
. 所有VxWorks函数库,像连接链和环形缓冲器,都可以被中断服务程序使用。

2009年1月20日星期二

5年以后你在做什么

19岁那年,我在休斯敦太空总署的太空梭实验室工作,同时也在总署旁边的休斯敦大学主修计算机专业。我整天处在学习、睡眠和工作之中,这些几乎占据了我每天的全部时间,但是,只要有一分钟的闲暇时间,我都会把精力放在自己的音乐创作上。

我知道,写歌词不是我的专长,所以在最近的一段日子里,我时时刻刻都在寻找一位擅长写歌词的搭档,与我一起创作。我认识了一位朋友,她叫"凡内芮" Valerie Johnson)。自从我20多年前离开得州后,就再也没听到过她的消息,但是她却在我事业刚刚起步时,给了我极大的鼓励。

年仅19岁的凡内芮在得州的诗词比赛中不知获得过多少奖牌。她的作品总是让我爱不释手,当时,我们的确合写了许多不错的作品,直到今天,我仍然认为那些作品充满了特色和创意。

一个周末,凡内芮热情地邀请我到她家的牧场吃烤肉。她的祖辈是得州有名的石油大亨,拥有规模庞大的牧场。虽然她的家庭极为富有,但她的穿着、她的车和谦卑诚恳的待人态度,更让我从心底佩服。凡内芮深知我对音乐的执着,然而,面对那遥不可及的音乐圈子及陌生的美国唱片市场,我们一点儿渠道都没有。当时,我们两个人安静地呆在得州的牧场里,根本不知道下一步该如何走。

突然,她冒出了一句话:(Visualize What you are doing in 5 years?想像一下,你5年后在做什么?)我愣了一下。她转过身来,指着我问道:"嘿!告诉我,在你心目中,'最希望'5年以后做什么,那时候,你的生活会是什么样子?"我还来不及回答,她又抢着说:"别急,你先仔细想想,完全想清楚,确定后再说出来。"我沉思了几分钟,开始告诉她:"第一,5年后,我希望能有一张自己的唱片在市场上,而这张唱片很受欢迎,可以得到许多人的肯定。第二,我住在一个音乐气氛浓厚的地方,每天都能够与世界上一流的乐师一起工作。"

凡内芮说:"你确定了吗?"

我从容地回答,而且拉了一个很长的Yes

凡内芮接着说:"好,既然你确定了,我们就把这个目标倒算回来。如果第5年,你有一张唱片在市场上,那么你在第4年一定是要跟一家唱片公司签约。

"你在第三年一定要有一部完整的作品,可以拿给许多唱片公司听,对不对?

"你在第二年一定要有很棒的作品开始录音了。

"你在第一年一定要把准备录音的所有作品全部编曲,把排练准备好。

"你在第6个月一定要把那些没有完成的作品修饰好,然后自己可以逐一筛选。

"你在第一个月就要把目前这几首曲子完成。

"你在第一个星期就要先列出一个完整的清单,排出哪些曲子需要修改,哪些需要完成。

"好了,我们现在不就已经知道你下个星期一要做什么了吗?"凡内芮笑着说。

"喔!对了。你还说5年后要生活在一个音乐气氛浓厚的地方,然后与许多一流乐师一起工作,对吗?"她急忙补充说,"如果你在第5年已经与这些人一起工作了,那么你在第4年就应该有一个自己的工作室或录音室。在第三年,你可能会先跟这个圈子里的人一起工作。在第二年,你不应该住在得州,而应该搬到纽约或洛杉矶了。"

第二年,我辞掉了令许多人羡慕不已的太空总署的工作,离开了休斯敦,搬到了洛杉矶。说来也奇怪:不敢说是恰好在第5年,但大约是第6年,我的唱片开始在亚洲畅销了,我几乎每天都忙碌着与一些顶尖的音乐高手从日出到日落地一起工作。

别忘了!在生命中,上帝已经把所有"选择"的权利交到我们手上了。如果你经常询问自己"为什么会这样?""为什么会那样?",则不妨试着问自己,"我是否曾经很'清楚'地知道自己要做的是什么?"

如果连自己要的是什么都不知道,那么爱你的主又如何帮你安排呢?不是吗?你旁边的人,再怎么热心地为你敲锣打鼓,爱你的主也顶多给你一些慈悲的安慰。因为连你自己都还没有清楚地告诉他自己要做的是什么?那么,你又怎能无辜地责怪他没有为你开路呢?

奥巴马就职演说:秉先辈志 重塑美国之伟大(中英)

CNN) -- Barack Obama was sworn in as the 44th president of the United States and the nation's first African-American president Tuesday. This is a transcript of his prepared speech.

My fellow citizens:

I stand here today humbled by the task before us, grateful for the trust you have bestowed, mindful of the sacrifices borne by our ancestors. I thank President Bush for his service to our nation, as well as the generosity and cooperation he has shown throughout this transition.

Forty-four Americans have now taken the presidential oath. The words have been spoken during rising tides of prosperity and the still waters of peace. Yet, every so often, the oath is taken amidst gathering clouds and raging storms. At these moments, America has carried on not simply because of the skill or vision of those in high office, but because We the People have remained faithful to the ideals of our forebearers, and true to our founding documents.

So it has been. So it must be with this generation of Americans.

That we are in the midst of crisis is now well understood. Our nation is at war, against a far-reaching network of violence and hatred. Our economy is badly weakened, a consequence of greed and irresponsibility on the part of some, but also our collective failure to make hard choices and prepare the nation for a new age. Homes have been lost; jobs shed; businesses shuttered. Our health care is too costly; our schools fail too many; and each day brings further evidence that the ways we use energy strengthen our adversaries and threaten our planet.

These are the indicators of crisis, subject to data and statistics. Less measurable but no less profound is a sapping of confidence across our land -- a nagging fear that America's decline is inevitable, and that the next generation must lower its sights.

Today I say to you that the challenges we face are real. They are serious and they are many. They will not be met easily or in a short span of time. But know this, America: They will be met.

On this day, we gather because we have chosen hope over fear, unity of purpose over conflict and discord.

On this day, we come to proclaim an end to the petty grievances and false promises, the recriminations and worn-out dogmas, that for far too long have strangled our politics.

We remain a young nation, but in the words of Scripture, the time has come to set aside childish things. The time has come to reaffirm our enduring spirit; to choose our better history; to carry forward that precious gift, that noble idea, passed on from generation to generation: the God-given promise that all are equal, all are free, and all deserve a chance to pursue their full measure of happiness.

In reaffirming the greatness of our nation, we understand that greatness is never a given. It must be earned. Our journey has never been one of shortcuts or settling for less. It has not been the path for the fainthearted -- for those who prefer leisure over work, or seek only the pleasures of riches and fame. Rather, it has been the risk-takers, the doers, the makers of things -- some celebrated, but more often men and women obscure in their labor -- who have carried us up the long, rugged path toward prosperity and freedom.

For us, they packed up their few worldly possessions and traveled across oceans in search of a new life.

For us, they toiled in sweatshops and settled the West; endured the lash of the whip and plowed the hard earth.

For us, they fought and died, in places like Concord and Gettysburg; Normandy and Khe Sahn.

Time and again, these men and women struggled and sacrificed and worked till their hands were raw so that we might live a better life. They saw America as bigger than the sum of our individual ambitions; greater than all the differences of birth or wealth or faction.

This is the journey we continue today. We remain the most prosperous, powerful nation on Earth. Our workers are no less productive than when this crisis began. Our minds are no less inventive, our goods and services no less needed than they were last week or last month or last year. Our capacity remains undiminished. But our time of standing pat, of protecting narrow interests and putting off unpleasant decisions -- that time has surely passed. Starting today, we must pick ourselves up, dust ourselves off, and begin again the work of remaking America.

For everywhere we look, there is work to be done. The state of the economy calls for action, bold and swift, and we will act -- not only to create new jobs, but to lay a new foundation for growth. We will build the roads and bridges, the electric grids and digital lines that feed our commerce and bind us together. We will restore science to its rightful place, and wield technology's wonders to raise health care's quality and lower its cost. We will harness the sun and the winds and the soil to fuel our cars and run our factories. And we will transform our schools and colleges and universities to meet the demands of a new age. All this we can do. And all this we will do.

Now, there are some who question the scale of our ambitions -- who suggest that our system cannot tolerate too many big plans. Their memories are short. For they have forgotten what this country has already done; what free men and women can achieve when imagination is joined to common purpose, and necessity to courage.

What the cynics fail to understand is that the ground has shifted beneath them -- that the stale political arguments that have consumed us for so long no longer apply. The question we ask today is not whether our government is too big or too small, but whether it works -- whether it helps families find jobs at a decent wage, care they can afford, a retirement that is dignified. Where the answer is yes, we intend to move forward. Where the answer is no, programs will end. And those of us who manage the public's dollars will be held to account -- to spend wisely, reform bad habits, and do our business in the light of day -- because only then can we restore the vital trust between a people and their government.

Nor is the question before us whether the market is a force for good or ill. Its power to generate wealth and expand freedom is unmatched, but this crisis has reminded us that without a watchful eye, the market can spin out of control -- and that a nation cannot prosper long when it favors only the prosperous. The success of our economy has always depended not just on the size of our gross domestic product, but on the reach of our prosperity; on our ability to extend opportunity to every willing heart -- not out of charity, but because it is the surest route to our common good.

As for our common defense, we reject as false the choice between our safety and our ideals. Our Founding Fathers, faced with perils we can scarcely imagine, drafted a charter to assure the rule of law and the rights of man, a charter expanded by the blood of generations. Those ideals still light the world, and we will not give them up for expedience's sake. And so to all other peoples and governments who are watching today, from the grandest capitals to the small village where my father was born: Know that America is a friend of each nation and every man, woman and child who seeks a future of peace and dignity, and that we are ready to lead once more.

Recall that earlier generations faced down fascism and communism not just with missiles and tanks, but with sturdy alliances and enduring convictions. They understood that our power alone cannot protect us, nor does it entitle us to do as we please. Instead, they knew that our power grows through its prudent use; our security emanates from the justness of our cause, the force of our example, the tempering qualities of humility and restraint.

We are the keepers of this legacy. Guided by these principles once more, we can meet those new threats that demand even greater effort -- even greater cooperation and understanding between nations. We will begin to responsibly leave Iraq to its people, and forge a hard-earned peace in Afghanistan. With old friends and former foes, we will work tirelessly to lessen the nuclear threat, and roll back the specter of a warming planet. We will not apologize for our way of life, nor will we waver in its defense, and for those who seek to advance their aims by inducing terror and slaughtering innocents, we say to you now that our spirit is stronger and cannot be broken; you cannot outlast us, and we will defeat you.

For we know that our patchwork heritage is a strength, not a weakness. We are a nation of Christians and Muslims, Jews and Hindus -- and nonbelievers. We are shaped by every language and culture, drawn from every end of this Earth; and because we have tasted the bitter swill of civil war and segregation, and emerged from that dark chapter stronger and more united, we cannot help but believe that the old hatreds shall someday pass; that the lines of tribe shall soon dissolve; that as the world grows smaller, our common humanity shall reveal itself; and that America must play its role in ushering in a new era of peace.

To the Muslim world, we seek a new way forward, based on mutual interest and mutual respect. To those leaders around the globe who seek to sow conflict, or blame their society's ills on the West: Know that your people will judge you on what you can build, not what you destroy. To those who cling to power through corruption and deceit and the silencing of dissent, know that you are on the wrong side of history; but that we will extend a hand if you are willing to unclench your fist.

To the people of poor nations, we pledge to work alongside you to make your farms flourish and let clean waters flow; to nourish starved bodies and feed hungry minds. And to those nations like ours that enjoy relative plenty, we say we can no longer afford indifference to suffering outside our borders; nor can we consume the world's resources without regard to effect. For the world has changed, and we must change with it.

As we consider the road that unfolds before us, we remember with humble gratitude those brave Americans who, at this very hour, patrol far-off deserts and distant mountains. They have something to tell us today, just as the fallen heroes who lie in Arlington whisper through the ages. We honor them not only because they are guardians of our liberty, but because they embody the spirit of service; a willingness to find meaning in something greater than themselves. And yet, at this moment -- a moment that will define a generation -- it is precisely this spirit that must inhabit us all.

For as much as government can do and must do, it is ultimately the faith and determination of the American people upon which this nation relies. It is the kindness to take in a stranger when the levees break, the selflessness of workers who would rather cut their hours than see a friend lose their job which sees us through our darkest hours. It is the firefighter's courage to storm a stairway filled with smoke, but also a parent's willingness to nurture a child, that finally decides our fate.

Our challenges may be new. The instruments with which we meet them may be new. But those values upon which our success depends -- hard work and honesty, courage and fair play, tolerance and curiosity, loyalty and patriotism -- these things are old. These things are true. They have been the quiet force of progress throughout our history. What is demanded then is a return to these truths. What is required of us now is a new era of responsibility -- a recognition, on the part of every American, that we have duties to ourselves, our nation and the world; duties that we do not grudgingly accept but rather seize gladly, firm in the knowledge that there is nothing so satisfying to the spirit, so defining of our character, than giving our all to a difficult task.

This is the price and the promise of citizenship.

This is the source of our confidence -- the knowledge that God calls on us to shape an uncertain destiny.

This is the meaning of our liberty and our creed -- why men and women and children of every race and every faith can join in celebration across this magnificent Mall, and why a man whose father less than 60 years ago might not have been served at a local restaurant can now stand before you to take a most sacred oath.

So let us mark this day with remembrance, of who we are and how far we have traveled. In the year of America's birth, in the coldest of months, a small band of patriots huddled by dying campfires on the shores of an icy river. The capital was abandoned. The enemy was advancing. The snow was stained with blood. At a moment when the outcome of our revolution was most in doubt, the father of our nation ordered these words be read to the people:

"Let it be told to the future world ... that in the depth of winter, when nothing but hope and virtue could survive... that the city and the country, alarmed at one common danger, came forth to meet [it]."

America. In the face of our common dangers, in this winter of our hardship, let us remember these timeless words. With hope and virtue, let us brave once more the icy currents, and endure what storms may come. Let it be said by our children's children that when we were tested, we refused to let this journey end, that we did not turn back, nor did we falter; and with eyes fixed on the horizon and God's grace upon us, we carried forth that great gift of freedom and delivered it safely to future generations.

中国日报网环球在线消息:美国东部时间120日中午12左右,美国第44任总统奥巴马发表就职演说,全文如下:

  我的同胞们,

  今天我站在这里,看到眼前面临的重大任务,深感卑微。我感谢你们对我的信任,也知道先辈们为了这个国家所作的牺牲。我要感谢布什总统为国家做出的贡献,以及感谢他在两届政府过渡期间给与的慷慨协作。

  迄今为止,已经有44个美国总统宣誓就职。总统的宣誓有时面对的是国家的和平繁荣,但通常面临的是乌云密布的紧张形势。

在紧张的形势中,支持美国前进的不仅仅是领导人的能力和远见,也在于美国人民对国家先驱者理想的信仰,以及对美国立国文件的忠诚。

  前辈们如此,我们这一代美国人也要如此。

  现在我们都深知,我们身处危机之中。我们的国家在战斗,对手是影响深远的暴力和憎恨;国家的经济也受到严重的削弱,原因是虽有一些人的贪婪和不负责任,但更为重要的是我们作为一个整体在一些重大问题上决策失误,同时也未能做好应对新时代的准备。

  我们的人民正在失去家园,失去工作,很多且要倒闭。社会的医疗过于昂贵、学校教育让许多人失望,而且每天都会有新的证据显示,我们利用能源的方式助长了我们的敌对势力,同时也威胁着我们的星球。

  统计数据的指标传达着危机的消息。危机难以测量,但更难以测量的是其对美国人国家自信的侵蚀――现在一种认为美国衰落不可避免,我们的下一代必须低调的言论正在吞噬着人们的自信。

  今天我要说,我们的确面临着很多严峻的挑战,而且在短期内不大可能轻易解决。但是我们要相信,我们一定会度过难关。

  今天,我们在这里齐聚一堂,因为我们战胜恐惧选择了希望,摒弃了冲突和矛盾而选择了团结。

  今天,我们宣布要为无谓的摩擦、不实的承诺和指责画上句号,我们要打破牵制美国政治发展的若干陈旧教条。

  美国仍是一个年轻的国家,借用《圣经》的话说,放弃幼稚的时代已经到来了。重拾坚韧精神的时代已经到来,我们要为历史作出更好的选择,我们要秉承历史赋予的宝贵权利,秉承那种代代相传的高贵理念:上帝赋予我们每个人以平等和自由,以及每个人尽全力去追求幸福的机会。

  在重申我们国家伟大之处的同时,我们深知伟大从来不是上天赐予的,伟大需要努力赢得。(我们的民族一路走来),这旅途之中从未有过捷径或者妥协,这旅途也不适合胆怯之人、或者爱安逸胜过爱工作之人、或者单单追求名利之人。这条路是勇于承担风险者之路,是实干家、创造者之路。这其中有一些人名留青史,但是更多的人却在默默无闻地工作着。正是这些人带领我们走过了漫长崎岖的旅行,带领我们走向富强和自由。

  为了我们,先辈们带着微薄的细软,横渡大洋,寻找新生活;为了我们,先辈们忍辱负重,用血汗浇铸工厂;为了我们,先辈们在荒芜的西部大地辛勤耕作,定居他乡;为了我们,先辈们奔赴(独立战争中的)康科德城和葛底斯堡、(二战中的)诺曼底、(越战中的)KheSahn,他们征战、死去。

  一次又一次,我们的先辈们战斗着、牺牲着、操劳着,只为了我们可以生活得更好。在他们看来,美国的强盛与伟大超越了个人雄心,也超越了个人的出身、贫富和派别差异。

  今天我们继续先辈们的旅途。美国依然是地球上最富裕、最强大的国家。同危机初露端倪之时相比,美国人民的生产力依然旺盛;与上周、上个月或者去年相比,我们的头脑依然富于创造力,我们的商品和服务依然很有市场,我们的实力不曾削弱。但是,可以肯定的是,轻歌曼舞的时代、保护狭隘利益的时代以及对艰难决定犹豫不决的时代已经过去了。从今天开始,我们必须跌倒后爬起来,拍拍身上的泥土,重新开始工作,重塑美国。

  我目之所及,都有工作有待完成。国家的经济情况要求我们采取大胆且快速的行动,我们的确是要行动,不仅是要创造就业,更要为(下一轮经济)增长打下新的基础。我们将造桥铺路,为企业铺设电网和数字线路,将我们联系在一起。我们将回归科学,运用科技的奇迹提高医疗质量,降低医疗费用。我们将利用风能、太阳能和土壤驱动车辆,为工厂提供能源。我们将改革中小学以及大专院校,以适应新时代的要求。这一切,我们都能做到,而且我们都将会做到。

简单好用的小朋友体质调理方

*** 请举手之劳, Email 传给有需要的人 ***
最近在联合报发表整理几个药膳的调理方,没想到打电话来问的人不少,觉得大家可能蛮需要这样的信息,所以我再整理几个,提供给需要的人参考:
先整理几个小朋友会常用到的药茶、药膳方,以简单容易,药味少,煮起来不麻烦为主,适用于病情状况较单纯的患者,也可以提供作为小朋友在疾病治疗期间的辅助疗法,有助于提早复原。不过,如果效果不理想,症状改善不大的话,那可能小朋友的病况比较复杂,或是您使用的方式有点错误,还是请您最好请教专业中医师处理,为您的小朋友设计更完整的调理方。
有问题也可以写 Email给我。mailto: rockleu@tcts.seed.net.tw
现在到处一片不景气,大家共体时艰,希望能教各位爸爸妈妈用最省钱的方法,帮助小朋友调理体质,可以不用花大钱买高级补品,也能把身体养好。
1.
便秘
适用:便秘,大便硬,嘴唇鲜红,常常流鼻血,二三天大便一次,硬得像羊咩咩的便便。
材料:生地 麦门冬 玄参 2,

也可以加蜂蜜少许,味道更好喝,也有软便功效,
不过,一岁以下太小的baby不可以喝蜂蜜。平常要多吃有纤维质的蔬菜水果,运动后随时补充水份。
2.
感冒
a.
适用:感冒,风热,口干舌燥,喉咙痛,烦躁
材料:桑叶 菊花 桔梗 各一钱半,连翘 金银花 3钱, 薄荷 甘草1 冰糖少许
这是当茶喝的一次量,如果喉咙痛比较不舒服可以准备两份一起煮,
再加板蓝根3
小朋友感冒当然还是先看医生,这是让你除了吃药以外,帮助感冒早一点好,
减轻感冒的烦热不适。
b.
鱼腥草一两(新鲜的更好),加水煮汤,加入冰糖调味,当茶喝。
感冒喉痛发热,烦躁。
c.
风寒感冒
有时候小朋友没带雨衣,在外面淋雨,一阵寒冷感觉,打喷嚏,赶快换干的衣服,
煮姜汤加红糖,几支葱白,洗个热水澡,流个汗就好了。

 

3.多汗,容易感冒
适用:平常精神不好,身体苍白瘦弱,只要一运动就满头大汗,
偏偏一吹风,又受寒打喷嚏了。
材料:黄耆 防风 白� 2钱,可以加几粒红枣比较好吃。
备注:这是中药的「玉屏风散」,适合没有感冒时,可以增加抵抗力
预防感冒。
流汗严重的,可以加重黄耆的量。
体质较虚的可以加党参 2
4.
增强免疫力
适用:常常感冒生病,尤其是上了幼儿园,感冒生病生不完。
材料:党参 黄耆 红枣 2钱, 枸杞1
备注:这是最近大街小巷流行的免疫茶,处方剂量可亦自行调整,
本茶香甜好喝,可以作为小朋友平常的茶饮,感冒的时候不要喝。
5.
厌食
a.
西红柿汁,每次喝30-100CC,可以健脾开胃生津止渴。
b.
一般酸的中药,例如乌梅、山楂、陈皮、或是新鲜橘子皮
都有开脾健胃的作用,可以加一点糖,作成像酸梅汁的饮料,
对促进食欲都有帮助,当然,还是要适量即可,小孩子不要喝太多饮料,
免得正餐吃不下。
6.
夜啼
a.
百合红枣汤
适用:小baby 容易受惊吓,晚上作恶梦,爬起来一直哭。
材料:百合 50 ,红枣 10 ,煮汤喝。也可以加一小把龙眼肉。
备注:具有养阴补血,宁心安神作用。
b.
竹叶 灯心草 蝉蜕 2钱, 甘草1
煮茶喝
7.
夜尿
简单的方法可以晚饭后「龙眼干泡开水」约七八个服用,记住
一定要泡开,不要当零食一直吃,以免一下子吃太多腹胀肚子痛。
8.
小儿多动症
适用: 少数儿童智力正常,但是自我控制力不足,注意力不集中
材料: 甘草 10,小麦 60,大枣30,加水煮成约200 CC
分次服用当茶喝
备注: 这是中药甘麦大枣汤,对于小儿夜啼也有效。
9.
慢性腹泻
a.
莲子山药粥
适用:小朋友消化功能不良,大便稀溏,次数多。
材料:莲子 山药 粳米 茯苓 白�各 250,加少许糖
可以煮成稀饭,或是先打成粉,想吃的时候再倒一些出来煮。
备注:脾胃虚弱用粥米食调理效果比单用汤药好,而且吃了会饱,
当作主食或点心也不错。
b.
苹果泥
将苹果打烂成泥或是煮成浓汁饮用
10.
过敏性鼻炎
适用:一大早打喷嚏流鼻水,鼻子像水龙头一样,严重的也会眼睛痒。
材料:苍耳子 三钱, 辛夷 白芷 二钱, 薄荷 一钱半 ,葱白3
备注:这是适合症状比较明显的,有点辣,要加一点冰糖,比较好喝。
如果鼻子症状比较轻微,可以吃以上提到的增强免疫力方。
11.
皮肤炎
适用:常常长一些化脓小红疹,两只小脚上变成红豆冰
材料:金银花三钱 白茅根五钱 芦根五钱 薏苡仁三钱 甘蔗一段
煮汤服用。
备注:有清热凉血解毒利湿作用。
或是煮绿豆汤,大人可可以吃,小朋友的装一大碗起来,
另外加入金银花3 甘草1钱,煮汤喝。

 

12.长眼针
适用:眼针、麦粒肿反复发作,两眼换来换去
材料:金银花 连翘 5 荆芥 牛蒡子 芦根 桔梗
淡豆豉 竹叶 黄芩 3
药是多了一点,可以煮多一点加些冰糖当茶喝,如果想药少一点,好喝一点,
也可以用上面皮肤炎那一方,再加连翘 3钱即可。
备注:最重要要保持毛巾干净,常洗手保持双手干净,不要用手揉眼睛
13.
咳嗽
a.
适用:小朋友气管弱,常常在咳嗽。
材料:百合、沙参、贝母各10、杏仁6 将药材煎浓汁再倒入蜂蜜,
熬成膏
备注:甜甜的,好吃也可作为平常保护气管用。
b.
贝母 3钱,梨子一个,少许冰糖,一起煮,是好吃的甜点。
c.
川贝杏仁粉,大的超级市场有卖,喝牛奶时添加一点。
要记的冰、饮料不喝太多。

 

14.常流鼻血
可以使用调理便秘的「生地 麦门冬 玄参 2钱」,喝一阵子,
也可以到超级市场买藕节煮茶喝,或是有的大超级市场有莲藕粉,
每天泡来喝。
记得没有必要不要常吃补,会补过头了,临床上有很多小朋友都是妈妈
觉得常流鼻血会身体虚,赶快炖一些人参补品,结果越弄越糟。

年终总结--记一个30岁的不成功人士(转)

楼上有位兄台提了个帖子《IT民工如何写年终总结》,如何写?这个困扰我多年的问题,估计你也一样,为了应付领导,写一些自己不愿意写的东西。如何写?

我今年30,会点C,冒充软件工程师,混迹电子行业。当前处境和"IT民工"的形象暗合。说白了就以苦力,其实我们大可不必在调侃中贬低自己的同时,无意识地伤害另一群叫民工的人,他们靠自己的劳动养活自己和家人,一直活得很有尊严。

30
岁,开始步入中年,总说30而立,我没有自己的事业,混得一塌糊涂,因此算是没立起来的一派,不知道另外一个地方是不是也很快立不起来了。所以人说30岁一个坎,这时总会有很多这样那样的困惑和压力。之前我曾苦苦的思考过如何成就一番自己的事业,但我对事业本身没有任何概念。事业对我来说就是有很多很多的钱,让身边的人都觉得自己很牛。在这种事业观的驱使下,我想破脑袋没最终没有得到确实可行的方案,因为我就一穷人,想做点啥都只能白手起家,从零开始。这谈何容易?何况很多人都有想法的人,最终也走了打工养家之路。

年终总结,就是告诉你的老大,这一整年的,你都干啥了,这我也说说,这30年我都干啥了。
79
年,在我不知情的情况下被老妈生了下。

5
岁以前:只能依稀记得自己当时大概的模样,村里有很多树,有池塘,有小溪,三面环山。。。好像和现在关系不大。

5
岁半,被骗去了幼儿园,反抗过。但最终还是归顺。

7
岁,上一年级,13岁毕业。这就是传说中的童年,大家都会觉得童年多么爽,多么无无忧无虑。其实不然,我小的时候没见过儿童读物,因此能看到的书都是大人看过的,报刊、杂志或者其他,《读者》《青年之音》好像有这么两本书,我地发现上面有很多对于童年时光的描述,基本上都很简短,一笔带过,偶尔也能看到一两篇"童年回忆录"之类的文章,所有的文章都是描诉童年多么美好,他们多么怀念,多么想回到从前。每每看到这些,我也很自然的会回想自己的过去,但想想自己56岁的时候,实在没啥可回忆的,也就过去了,后来老师告诉我,我这个年级就是童年。啊?我当时就很惊讶,就这童年,有啥好回忆的。谁说无忧无虑了?忧虑可多了:我最痛恨的就是每天都要上课;家里带来的菜老发霉,但还要继续吃(9岁开始住学校,一周回一次家,学校不卖菜);还有每天晚上都要上自习;每天都是1930宿舍熄灯睡觉(夏天很自然的就天还亮着就睡觉了);教室后面有很多笋,不许去挖;不许在山上玩。。。很多很多,最不能忍受的就是,周末回家,老爸还会问我成绩,并要挟我说,如果我每门成绩都在90分以上,我就可以爱怎么玩就怎么玩。如此总总,不顺心的事多了。我上课的时候想到最多的是田里的青蛙,野果,或者去小溪摸田螺,我很难想像这样的一个年代有啥乐趣可言。后来长大了,才发现原来是成年人有自己的烦恼,而因为健忘的原因,误以为小时候没有烦恼。小时候的事能想起来的几乎没有,于是残忍的认为"童年是美好"的,还好我能在自己还小的时候及时纠正了这样观点,并把成年人对小孩的看法深深烙在脑海里。果然,我现在当爹,我有时也会认为小P孩真幸福。自己这个年纪心里想的事,全忘光了。还好后来看到了《蒙台梭利xxx》,并且惊喜地发现我们很多观点不谋而合,比如我们都认为儿童是在成人的折磨中长大的。幸福个屁。

16岁初中毕业,初中三年似乎很顺利,能记住的事不多,一个是常常被老师打,因为他们总觉得我不是个好学生;二是和老爸商量退学的事,我给老爸举了个很有说服力的例子:我现在在工地上干活(和水泥)一天可以赚30块,一个月900块,比你赚的都多。何必浪费你的钱念书呢?我估计老爹担心我比他会赚钱,始终没同意让我出去。其实当时我还有一个更好的赚钱方法:生儿子卖。我从街上听到消息说一个儿子可以卖3W,这对我来说就是一笔天文数字,太好赚了。但一直苦于没有人愿意嫁给我,帮我生小孩;第三,就是,坚持每天睡觉前做50个俯卧撑,举哑铃,就为了早点打赢揍我的老师(这辈子估计没戏了)

19岁高中毕业。高中三年可谓平淡无奇,我们学校以打群架出名,记得最壮观的一次,晚自习时间,校门外开进来一卡车社会青年和校内很有势力的一个帮派对攻,很刺激,也很血腥。但我却很意外地一直很顺利,直到毕业,没有人骚扰我,大概因为初中练了三年,看起来很壮的原因吧。高中时189岁,开始扭捏地接受成人的思想,开始跑步,居然是为了锻炼身体,开始念书,为了考大学(哪怕我上高三之前的两年学校的升学率为0,大专都没一个),高中期间对我影响最大的就是《爱因斯坦x传》,这个鸟人和我印象中的英雄形象暗合。不知什么原因开始发疯似的看书,甚至于为了推导相对论的公式,借了一套微积分的课本,并做完了所有习题,可惜还是没推导出来(几年后还是完成了)。高三做了一年的高考习题。完事就毕业了。

23岁大学毕业,大学四年可以用一个混字概括,由于没钱来混的原因,我还是多多少少学了点东西。大学给我的印象其烂无比,大2开始高校扩招,一年招的学生就比原来全校的人还多。招那么多学生的结果是我连上自习的座位多没有。宿舍8个人一张桌子,上面全是泡面渣+饭粒,底下一堆臭袜子,躺床上看书容易睡着。冬天室外零下20几度,拿一本书在外面看不被认为装逼是不可能的,而且也确实看不进去任何东西。夏天室外都是谈恋爱的。在那看书就是扯淡。因此为了争教室里可以看会书的座位常常发生战争。久儿久之,我也烦了。同学都去玩了,我还装啥呢?2000,大三。年开始玩星际,开始玩mud,开始半夜起来翻墙出去买西瓜。。。拿到毕业证书的那一天,同学疯狂地砸学校任何能砸的东西,这个习俗流传已久,每年一次。我倒是比较低调,哈哈大笑着看同学在走廊上写满大字。看到"哈尔滨xx大学,我xxx"时,我忍不住揣上两脚,算是对一个座位不够的大学最无奈的反抗。然后拿着火车票离开了这个学校,到现在再也没回去过。

传说中的寒窗10年,结束了。算上幼儿园,实际上在学校呆了178年,浪费了我小半辈子。

毕业后面临的第一个问题就是择业,就业,其实就是找工作。就业和择业其实是两回事,选择一个行业不是找工作的时候临时决定的,你喜欢干啥,适合干啥,这些都是在成长的过程中早早定好的。很多人都会抱怨不能从事自己喜欢的工作,这确实很痛苦,一辈子都在做的事情,不喜欢你做他干什么,能做好吗?再有你知道自己喜欢干什么吗?当然其中的原因很复杂的,我不知道的原因。我只能庆幸自己不存在"择业"的困惑。因为在很小的时候,老师就怂恿我们长大了要当科学家,我们这个年代几乎全国的学生都被老师这么教唆过吧。这也不是老师的错,因为课本处处暗示我们,科学家多么多么牛逼,多么多么伟大,于是无形中我开始崇拜科学家,希望自己有朝一日也成为这些牛人中的一员(遗憾的是,到目前为止我没有认识一个科学家,没有听说国内哪一个牛人称自己是科学家,我也不知道科学家到底是干啥的)在这样的环境下,崇尚科学,崇尚技术是多么天经地义的一件事(宪法一边规定宗教信仰自有,一边全民普及无神论,唉,何苦呢?)当科学家的念头直到上初二才被忽然打消,原因很简单,当时很流行"读书无用论""做原子弹的不如卖茶叶蛋的",之后度过了迷茫的一段时间,我还是回到了崇尚"技术"这个老路,初中三年,拆坏了家里所有的电器(本来就没几件),拆的同时也在不停的制作各种小东西,虽然没有任何成功的作品,但还是非常享受这个过程。也许是在这之前玩的机会太少,被憋坏的原因吧。再后来高二时选择理科,再到后来上工科大学,一起似乎都是天经地义,容不得我疑惑。毕业后成为一名"工程师"也是自然而然的事。

1999
年,大家都在还在责怪win98太占资源运行太慢而又在感叹其强大、漂亮的同时,我神奇地搞到了一张Slack ware的安装盘,当时我是这个学校唯一一个摆摊买光盘的,我能拿到各种年轻人需要的碟片。一张系统安装盘不算什么。我用之前倒卖ip卡的积蓄+从老爸的口粮中抠出来的钱,攒了台电脑,并只装了Linux,当时Linux一点都不好玩,2000年的时候Xwindow在我看来还是奇丑无比,我的显卡还是属于不支持的一类(Trident),更不说别的,但我还是折腾了一番让他工作了起来并且配上了鼠标,更爽的是还能让声卡发出声音。

2001
年春节过后,我上学路过福州,正好赶上个招聘会,当时在福大礼堂,一个看起来非常牛气的公司在招人,打着省科技厅的名号,列了几个国家863计划的项目,薪资福利一切看起来都很诱人。招聘现场也异常火爆,我艰难地挤到了第一排,递上简历,得到两个问题,第一,学什么专业,会干啥,我如实回答,第二个问题,Linux玩到什么程度,我说还没开始,刚把声卡驱动写好 。然后就告诉我两天天后到公司二面,二面过程很长,但我还算顺利地过了。就业的问题算是解决了。

找工作的事情也困扰过我老长时间,想从事相关专业却发现很难,一个学自动化的,真正做过的自动控制系统只有一个:远程炉温控制。以后就去烧锅炉吗?不怎么愿意。再有一个就是来学校招聘的河南拖拉机厂,指名我们班的学生他全要,无须面试,当场签合同。就是待遇少点,月薪800,比我初中是能赚的还少,我们这一届还不属于扩招呢,怎么这么快就降价了?折腾了另外几家公司,都觉得没啥意思,高不成低不就。干脆玩到7月份,毕业。

告别了学生时代。刚开始上班的时候,感觉很不一样,每天骑自行车去上班,心中充满了神气和满足。那时对待工作也是激情洋溢,我的第一个任务在现在看来很简单,做一个瘦身版本的Linux,能让系统+产品以ramfs的形式在内存里运行,就是为了解决系统非正常关机再开机时漫长的fschk过程,当时没有ext3ibm有一个Jfs,但似乎不是免费的。于是我就考虑使用ramfs,把硬盘干掉,换成Flash,省下的钱足够加更大的内存...,开了不少会,最终决定确实可行。接下来的rootfs制作过程却让我吃近苦头,2001年的Linux远没有现在普及,周围的人没有任何经验,网上能查到的资料聊聊无几,而且那时只有sohuyahoo,很后面才认识google,没办法,只能一点一点摸索,从Flash驱动,lilo,kernel,再按着Sysinitrd的启动脚本,一个文件文件添加,再到链接库...漫长的时间之后,终于搞出点东西并得到老大的认可:可以把产品加到上面去。看这自己做的东西出货,心里那叫一个爽。我要没猜错,今天我只要愿意,我一定可以google一个别人做好的rootfs,除去测试,最多两周时间完成我当初所有的事情。

之后又陆陆续续添加了几个新功能,同样的感觉良好。甚至感觉太好。当时没别的爱好,就是下载好莱坞的电影,看老美骂起政府来毫不客气,调侃总统跟玩似的,我也得意的以为国内也是同样的情况,言论自由嘛。一次我自以为很幽默地修改了电脑的hostname,其中有两个人的名字,一个是当时国内最牛逼的官,一个是不怎么牛逼的女歌星,外加一个很普通的动词。就这么一个简单的事,让我吃尽了苦头。这家公司是政府背景,国家搞什么政企分开时从省xx厅划出来却没分出去的一个很复杂的结构体,关键是里面还有图书馆,一个读者在网上邻居看到了这么一个名称,然后很快,厅长知道了这事,公司老总很紧张,赶快叫人查。接下来自然是我检讨,认错,把检查贴在公司楼梯口,让所有人引以为戒。整整一个月搞得我毫无心思上班。再后来不久,另外两个同事又出事了,政治问题。而且动静更大,整栋楼的人都被纠集到礼堂开审判大会,听他俩在台上检讨。我一看这架势,文革吗不是?乖乖,这样的企业我还算早点离开吧。

于是很快,我离职,并离开了福州来到厦门。

第二家是上市公司,我去的时候正是它辉煌的时候,老总大手笔地开展各种新业务,挂名电子行业,却盯着地产和汽车这两块肥肉。不过这些都和我关系不大,我要去做的,也是公司的新业务,在国内也是刚刚兴起:MP3播放器。换工作让我涉足全新的领域,从还算单纯的软件开发,到离不开示波器万用表。从gcckeil,visource insight。一切都是很新鲜。但因为和硬件工程师一起干活的原因,我总觉得自己在做的事和小时候自己折腾的东西很相似,因此兴头十足,搞得不亦乐乎。很遗憾,不幸再次降临到我头上,两年后公司的主营业务开始出现亏损,边缘部门被砍是自然的,何况这时国内的MP3市场已经被深圳小厂占领(那时似乎没有"山寨"的概念)。就这样我被"规划"到别的部门。公司业务越来越萎靡,"招安"我的老大又很排外,认为我是外系的人,让我一直处于"被闲置"状态。半年没干一点事。那怎么办,赶紧撤吧。

再次找工作,来到了现在这家。号称做电视,刚去的时候我对电视的了解为零。再次涉足新领域,这会欠缺的是基础知识,电视信号从如何调制开始,到如何接收,声音、图像如何解调,解码,scaler...没有这些基本常识,我只能一点点啃,而且很吃惊地发现,自己对新知识的接受能力已经大不如从前。还好,这号称公司,实际上就是加工厂,开发模式也很简单:从方案商手中拿到半成品,包括pcb,原理图,源代码,以及bom,然后找几个客户,问他们需不需要,需要我们就立项,按客户需求改改他们需要修改的,UI级别的需求,改动大了我们直接找原厂,其实电视这东西做了好几十年,客户能想到的需求不会比方案商多。因此基本不修改就能生产。从立项到出货,业务员和客人承诺的时间从来都是三个月。因此在这呆了三年不到,仔细数数自己过手的机型居然高到20多个,最长的一个项目也不过8个月,忙的时候45款机器一起搞是再正常不过的事。这种环境下,出货就是死命令。任何问题都可以叫外协或原厂解决。而我要做的就是走流程,发放软件,偶尔改改bug。三年下来,自己对电视依然是一知半解,懵懵懂懂。而且一直混到现在。

就这样,30年没了,一事无成。

总结下自己没牛逼起来的原因:

第一点,没有积累:
积累,这个命题太大,我没办法说全,只能说一点:技术的积累很重要,非常重要。

以我自己为例子,每家公司工作23年之后便离开,3年,对于一个行业来说应该是刚刚迈过门槛,进门了,也能看到里面有啥了,但仅限于此。之前我误以为原来做软件,现在还是做软件,换个地方作对自己影响不大,其实这个观点很糟糕,什么叫软件?是CJava,C#,编程语言本身吗?这只是工具,好比外科医生,刀只是他的工具一样,在胸外科干了5年,刚明白心脏周围的血管、神经、肌肉组织。忽然觉得压力太大,工作太幸苦,收入太低,于是转行做兽医,过着游山玩水四处找野兽的快活日子。这时让你解剖一只猪是不是得从头学起?是不是护士递过来的刀都没变?但却不知道从何开始了。决定做兽医的那一刻,意味着在胸外科5年所学的知识现在用不上了,打着兽医的旗号赚钱,那前5年是不是白白浪费了?也许你会觉得说浪费有点言过其实,多多少少有点相通。没错,但是再一个5年后,一个是行医十年的老江湖,一个可能是重复5年前的模样。道理简单。

我的情况很类似,做MP3的时候,工作很卖命,攻关期间,连续工作30几天,每天2点睡觉,8点准时回到办公室,没有休息日,没有约会,盯示波器盯到眼睛通红,洗澡是能洗出一地的头发也在所不惜,因为当时觉得趁着还年轻,能多做一点是一点,能多学一点是一点。那时住在厦门岛外,虽然公司天天有230班次的车往返岛内和工厂之间,我一年到岛内的时间也就78次。很执着的一段时间,但现在回头一看,非常可惜,白忙活了23.那时的努力对改变我现在的生活状况没有任何帮助。因为那时所学习的东西,现在几乎用不上。而且基本上都忘光了。

技术积累本身是一个漫长的过程,无聊,单调,而且很这个过程很辛苦。并不是所有人都能坚持,这是一个浮躁的社会,小邓一句话"让一部分人先富起来,然后那啥,," 一句话让人想致富的念头变得这么名目张胆,变得更加简单粗暴。于是浮躁是必然而然的结果。人们习惯了短平快的开发方式,有问题找外协,凡事最好马上有结果,立竿见影成为一种必须。都希望一夜暴富,都希望不劳而获,都习惯了快餐式生活,我们甚至不允许论坛上出现很长的文章,哪怕句句言之有物也会被鄙视。这个是社会问题,但我们必须很清楚,社会有问题,我们身在其中,也肯定有问题,我们要时刻告诫自己:没有积累成就不了高手。如果你也想称为高手,那么,坚持。

再一点,当前的环境,国内很少企业会考虑对工程师的培养,甚至培训都不再老板的考虑范围之内。年轻的工程师都处于自生自灭的状态。老板雇你,他考虑最多的还是你能否为他创造利润,创造多少,而你自己的成长,你的提高是你自己的事情。工作之余你必须付出更多的,真正属于自己的努力。我们总在抱怨自己做着简单,粗糙,没技术含量的活,担心没有提高。其实未必,什么叫技术含量?一定是自己未涉及的领域吗?把油倒进瓶子里有技术含量吗?在瓶口搁个铜钱呢?想想同行,他们也干着同样的活,想想传说中的扫地僧,我们会更坦然面对自己的处境,更清楚自己该怎么做。

关于跳槽,这一行为已经流行N年,年轻人总是遇到一丁点稍稍不顺心的事就吵着要离开,离职是否值得,这是一个老生常谈的话题,我多说也改变不了任何人的想法。我个人认为,如果你确实觉得除了跳槽之外创造不出更好的机会来实现自己的目标时,再走这条不得已的路也不迟。不要简单的因为能多赚几百块银子或出一口恶气而离开现在的位置。做好自己的职业规划,只有明白了自己想成为一个什么样的人,才能走好每一步棋。是否有兴趣做一个牛逼的工程师,是否准备好了就这么艰苦的干下去?我不鄙视把赚到一大笔钱当作终极目标的想法,但钱肯定是艰苦劳动的附属产物,这是一个浅显的道理,偏偏很多人不明白,甚至假装不明白。不少工程师简单地把发财的希望寄托在35年开发->3,5年技术支持->3,5年业务->捞个大单,当老板->发财 这么一个简单的道路上,不错,很多牛逼的老板都是这么过来的,或是类似这么走过来的。但决定这么做之前你是否考虑过更基本的一些问题,比如多少人在尝试这么做,多少人能实现最终的目标,在比如自己是业务的料吗?把自己从一个见到生人说话都会结巴的雏,练成一个油嘴滑舌的奸商,需要多少时间?再比如,35年积累的知识够吗?

老罗说过,失败的原因只有一种,那就是半途而废。如果可以,我们不妨在一个企业工作很长的一段时间,这样才能积累行业经验,所谓行业经验,不外乎技术,业务,人脉。

第二,关于深入:
解决问题就是我的工作。问题的解决方案往往不止一个,可以用简单的补丁把问题裹住,不让他出现。或者从源头查起,找到问题根本的地方把他干掉。咋一看,这个似乎没什么好说,能从根源解决问题谁不愿意?但现场情况往往没这么简单,要么你没有这部分的源码,要么生产时发现产品有致命bug,线上几百号人坐着等你,你没时间,要么,代码你根本没看懂,再要么,你连芯片规格书都没看完,不知道哪里可能会出问题。这时又怎么谈从源头解决问题呢? 不深入又怎么能正真明白呢?很多时候老板会为了进度的原因让你赶快搞定下一个bug,这时你会怎么办?这是个关于惰性和耐性的问题,所谓性格决定命运,这多少能看出点端倪吧。浅尝辄止,蜻蜓点水般地看待问题,只能让自己的水平永远停留在初学者的状态。而你的工作也随时可以被刚毕业的新人替代,等自己岁数大到一点程度时才恍然大悟,已经晚了。

就这些了,其实还可以说很多,但都是细节。自己总结的结果往往不是很好,当局者迷嘛,让身边的人来评价,会得到更有价值的信息。

30岁,就这么回事,不成功,但我也不觉得失败。当所有人都认为只能以豪宅名车来定义成功时,这个社会99%的人都失败了,那失败也不是一件可耻的事。如果失败可耻的话是不是这些人都活不下去了?人生没有成败可言,只论精彩与否。努力过就没有遗憾。大可不必把他人的价值取向作为自己的成功标准,幸福不分贫富,如果你跟我一样,认为冬天躺在草坪上晒太阳是一种享受,认为老奶奶满地追儿子是一种惬意,如果你也认为自己的选择适合自己,并勇敢地接受生活中随之而来的一切,你就获得了一份属于自己的精彩。

祝大家过个好年。

Jan 18 2009