星期三, 七月 23, 2008

如何在寒区求生

转载自:http://www.hainu.edu.cn

寒区求生是野外生存训练中的一个重要部分,为许多外国军队所重视,特别是特种部队和空军。美国阿拉斯加空军基地专门设有训练寒区生存技能的极地训练学校;英国空军在德国巴伐利亚高原腹地设有皇家空军冬季生存学校;印度空军在斯利加那设有丛林与雪地救生学校。生存学校通常每期训练2-3周,主要有课堂讲授,适应性训练,野外演练等,指导降落在大雪覆盖的山野中的求生之道。我国空降兵也曾在长白山区进行过寒区生存演练。本文从行、食、住、取火四个方面讲述一些寒区生存常识以供热爱山野的朋友。

冬季在山地如遇风雪、浓雾、强风等恶劣天气,应停止行进,躲避在山崖下或山洞里,待气候好转时再走。山地行进不要过高估计自己的体力,疲劳时,就应适时休息。不要走到筋疲力尽才休息,这样在冬季容易冻死。正确的方法是走一段,停下来休息一会儿,调整呼吸。此时最好是站着休息,不要卸掉装具背包,可以在背包下支撑一根木棍,以减轻身体负重。不要坐在石头上休息,石头会迅速将身体的热量吸走。休息时手、脚要保持活动并按摩脸部。

雪坡行进不仅要注意防裂隙,还要注意不要蹬塌积雪。在冰面和积雪山坡交界的地方要警惕,此处积雪往往很深。攀登坡度很大的雪坡时,一定要两脚站稳后再移动。向前跨步,要用脚前掌踏雪,踩成台阶再移动后脚。如果不慎滑倒要立即俯卧,防止滑坠。在山谷中行走,应靠近山谷中心线以避免山坡滚石。不要接近雪檐,更不要在雪檐下行走,以免遭遇雪崩。

为了在雪地行走方便,可以用树枝(最好是刚砍下来的树枝)做成“雪鞋,方法是将树枝用火烤成U形,再用绳子绑紧,套在脚上。穿着时应注意用绳子将脚尖和脚跟部位分别捆在前后横带上。绑扎的绳扣要系在鞋的上部或外侧。在松软的雪地上长时间行走时,要尽量跨大步,以缩短在雪地上行走的时间。行走时要先把脚往后稍退一点,再向上抬脚大步迈向前方。脚后退是使雪鞋前有活动余地,向前迈出时还可以起到拂去附雪的作用。走陡坡要用雪鞋缘踏坡,尽量避免身体偏向外缘。若雪冻结得十分坚硬,则可脱去雪鞋步行。冬季切勿穿过紧的鞋袜,鞋带也不能系得过紧。如果血液循环不通畅,双脚就会发冷,易冻伤。美国海军陆战队的有关教令中十分强调冬季应始终带一双备用的干袜子;1982年4月的英阿马岛战争中,英国特种部队军官对战地记者的野外生存速成训练,也要求学会随时保留一双干燥的袜子。例如把潮湿的袜子栓在裤子里面,或者在夜间把袜子放在腿裆里,到早晨就干了。为了保持脚的温暖,有人曾将干辣椒放在鞋的顶部,据说能使脚尖有一种热感。

在我国东北地区的山林中生长着许多可生食的野果,如山葡萄(果可生食,其嫩枝条可解渴)、笃斯、黑瞎子果等;生长在新疆、宁夏、甘肃、青海等地河岸沙滩的沙棘等,9到10月份霜后成熟亦可采食。然而在冬季,寒区万物凋零,很难采集到可食的野果、野菜。但山林中的许多种树皮是可以应急食用的。抗日战争时期,东北抗日联军在白山黑水的密林中转战,总结出3月吃桦树皮,4月吃椴树皮,5月吃松树皮的经验。这些季节里的树皮不但无毒,而巨还有一种甜滋滋的味道。捕猎动物是寒区生存的手段之一。山林中野兔是较常见的捕猎对象。野兔机警沉着,通常伏卧,待人走近20米以内才会突然跳起来逃窜。而空勤人员所配带的多是手枪,用手枪在20米距离以内,瞄准卧姿野兔的足部下沿均可击中兔耳。依笔者经验,左臂抬起弯曲成45°角,肘尖指向目标方向,右手持枪,枪柄依托左臂臂弯内,可使手枪稳定,精确瞄准射击。一般来讲,手枪在一击未中后,野兔即开始奔逃,此时再打徒费枪弹。

雪后是猎兔的最好时机。大雪初降的第一天,野兔静伏雪下不动,由于兔子在雪下呼吸,它们头上的积雪形成一个鼠洞大小的通气孔。可用网捕可棍打。大雪的第二天,小兔和弱兔钻出雪窟觅食。大雪第三天夜间,所有的兔子都会出来活动,雪地上留下清晰的兔踪,这是觅踪猎捕的最好时机。特别是雪深超过40厘米时,野兔奔跑困难,人用棍棒徒步就能追打猎获。

猎获的动物可切成小片穿在长50厘米的短木棍上在篝火的炭中烤。一般两小时后肯定能熟。烧石烤肉也是方法之一。找两块扁平的大石头(不宜用石灰岩)放入火中,一块叠在另一块之上,中间用小石块隔开,待石头烧得非常热之后,撤去燃烧的木柴,扫去石上的灰烬,把肉放在两片大石头中间烘烤。

寒区露营地选择应据避风,以及距水源近等情况而定。一般来说,森林和灌木丛是理想的设营地。应避开易发生雪崩和易被积雪掩埋的地点,如避开崖避的背风处,因为这种地形风很快会吹积起大量的雪将露营处埋没。

冬季架设帐篷(空勤人员和空降兵可用降落伞搭成简易帐篷),在雪层薄的地区,应先将架设地点的积雪扫尽。在雪层较深的地区,若是暂时驻留,可将雪压实、压平,使在冻结的地面上形成一道隔绝层。如果暂时不转移,则应在雪地中挖坑埋设帐篷。这样可以更好地抵御寒风。在开阔地上架设帐篷时,可在帐篷迎风面筑一道雪墙,既可挡风又便于生火。

积雪厚的地方可以掏筑雪洞以避风寒,适宜掏筑雪洞的地方往往是冲沟、土坑或山谷等积雪较深处。积雪在1.5米以上即可直接开口掏筑。积雪较薄的地方可以将雪堆积起来后开口构筑。雪洞一般不宜过大,否则容易坍塌。洞口最好掏成拱形,开在避风之处。为防止冷风直吹洞内,开口后可拐一个直角弯。洞口掏好后,用雨衣或干草、树叶封闭洞口保温。但须留一通气孔。为确保安全,雪洞内一定要留一把铁锹或匕首,在暴风雪之后,可用以挖掘出口。在冰雪覆盖的开阔地,如无其它可利用的遮蔽物,可用压实的雪块或冰块,修筑—U形雪墙,作为临时的避风之处。

时间充裕,可在沟壕、土坡的侧壁挖一个可以栖身的“猫耳洞”,其形式与步兵的防炮洞大致相仿,不过面积略大。洞口应开在土质好的阳坡、背风处,尽量避开阴坡、风口。猫耳洞的防寒效果很好,通常洞内温度可比洞外高12~20摄氏度左右。

冬季露营,单人睡不如两人合睡暖和。将两人的铺盖加在一起会厚得多,彼此还可以用体温保暖。无论是单睡还是合睡,都不能穿棉衣,那样会越睡越冷。最好是穿绒衣钻睡袋睡下后戴上皮帽,放下帽耳,前后反戴,以防冻伤头部。临睡前和醒来后,都应运动,以驱寒意。我国地学工作者杨联康在徒步考察黄河时,曾在隆冬季节在青海高原露宿。他宿营时无遮蔽,身上仅盖一件皮大衣,之所以没被冻坏,就是没有睡得过死,身上寒冷时,就起来稍加运动。

煮烤食物需要火,宿营取暖需要火,发求救信号也需要火。因而,野外生存能力,在某种程度上说,取决于取火的能力。猎手和探险家都是野外取火的高手。

火柴在野外生活中是不可少的必需品。当一个人迷失方向,或来不及在天黑之前到达宿营地时,一盒火柴往往可以帮助我们摆脱困境,甚至挽救生命。倘若火柴受潮,或没有火柴,有的猎人将枪弹的弹丸倒出来,然后用仅有发射药的子弹对准干燥易燃的枯草或纸射击取火。军人用信号枪弹可直接对准易燃物射击取火。此处,可用凸透镜(放大镜)透过阳光聚焦照射易燃物取火。曾有这样的事例,一支南极探险队把一块晶莹剔透的冰块,加工成中间厚,周边薄的一个圆形特大凸透镜,并用这个冰制的凸透镜利用阳光聚焦取火(详见本书93页”怎样取火”)。

燃点篝火最好的材料是桦树皮和油松。桦树皮的含油量达30%左右,甚至在雨中仍能燃烧。北方猎人们常用的篝火有:

密木篝火,横入一根较粗的圆木,上面斜搭几根较细的木头,一边烧,一边挪动。适用于冬季无遮棚的露营。星形篝火,把5~10根圆木的一头并拔如星形,然后一边烧,一边把圆木向里推。这种篝火热量大,西伯利亚的猎人甚至围着它在雪地上睡觉。长条形篝火,用两段约为人体长的圆木顺风叠放,边上打入湿木楔,防止圆木滑落。两木之间加撑子,留出空隙,以利燃烧。这种篝火燃烧时间长,几乎无须调整,适于冬季露营时取暖。
  

糟糠

糟糠 :穷人用来充饥的酒渣、米糠等粗劣食物。形容贫穷时共患难的妻子。

东汉皇帝刘秀有一个姐姐,名叫湖阳公主。湖阳公主死了丈夫之后一直守寡在家。一天她看中了一位叫宋弘的大臣,就请弟弟刘秀皇帝出面提亲。刘秀心想:“我是皇帝,为自己的姐姐说亲岂有不成之理。”

几天后,刘秀便派人请宋弘来赴宴,席间,刘秀故意用话来考察和暗示宋弘,他对宋弘说:“宋卿家,朕常听人说:一个人要是有权势了应该根据自己的身份地位交一些符合自己身份地位的朋友;要是有钱财,富裕了,应该换个适合自己点的妻子;卿家你说这是符合人之常情的吧?”

刘秀想:“宋弘一定会同意我的观点。”不料,宋弘当场反驳道:“皇上,可是臣却常听人说:贫贱之交不可忘,糟糠之妻不下堂。 不知皇上是怎么看呢?”意思是说在贫贱时结交的朋友,不能因为自己的地位变了而忘记,同自己一起吃糠咽莱过苦日子的妻子,不能因为自己富贵了就抛弃!(不下堂是仍然主持家务的意思。)

刘秀一听,感到宋弘的话讲得十分有理。刘秀知道宋弘已经有了妻子,既然糟糠之妻不下堂,那么,宋弘是不会忘本抛弃妻子而另攀高门的,于是,作为皇帝的刘秀,便不在宋弘在前提起给自己姐姐说媒的事了。

后人根据这个故事,把自己生死相依、同甘共苦的妻子称为“糟糠”。

《后汉书·宋弘传》:“(光武帝)谓弘曰:‘谚言贵易交,富易妻,人情乎?’弘曰:‘臣闻贫贱之知不可忘,糟糠之妻不下堂。’”

星期二, 七月 22, 2008

如果茅十八那天没进丽春院

  那他不会碰见韦小宝,也不可能带上小宝去北京,那么康熙肯定死在螯拜手里。

  沐剑屏和她师姐也未必会去刺杀皇上,不去刺杀就不会被韦小宝所救,假皇后也一定能找齐四本真经断了大清的龙脉。断了大清的龙脉,那么建宁公主也不能远嫁到云南,吴应熊的小鸡鸡肯定还能插更多的妹妹。

  阿珂和独臂神尼还是要去刺杀吴三桂,还是要碰上姓郑的小白脸,最后嫁给他生下一大队的台湾人。于是韦小宝不能被封鹿鼎公也就没了资格远征俄罗斯,根本就不能在地道里搞了个洋公主,也不会帮住公主灭了国内的反对者帮她哥哥彼得大帝保住了王位。而没有了彼得大帝,整个欧洲的历史就将要全部改写……整个欧洲的历史全部改写后,也许就没了后来的鸦片战争,没了鸦片战争就没有辛亥革命,孙中山就不会四处流浪 非要组建个什么国民党,没有了国民党,也就没了什么共产党,没有共产党就没有新中国!

  所以看似偶然的茅十八走进丽春院,谁知道竟然全部改写了整个人类的近代史……

小聚

昨天下雨,晚上和同学在西安广场的东方炭火王小聚,人员包括高继原、褚旭、韩冬两口子、我和我媳妇。大家一顿闲聊,晚上高继原开车送我回家。到家的时候还在下雨。

星期一, 七月 21, 2008

asp.net 自定义控件 Custom Control

转:http://dev.csdn.net/article/16/16199.shtm

  学习自定义控件的开发不仅可以使你开发出更灵活的系统更重要的是它可以使你加深对已有服务器控件的理解,得以更灵活的应用。

  较 之于asp,asp.net提供了更强大的功能,我比较喜欢它的代码分离技术和对诸如C#、VB.Net等强类型语言的使用,这是从开发者的角度来看的, 从用户的角度来看,会觉得它速度更快,运行更稳定,安全性也更高。不管怎么说,新技术的产生总会使许多人感到高兴,不过对开发者来说,坏消息是他们需要学 习更多新的知识。


  Asp.net 有了很多的改变,比如你可能会发现供我们操作的元素也和以前有了很大的不同,原来标准的HTML元素变成了现在的服务器控件,所谓服务器控件,就是在服务 器上运行,并可以映射到所有浏览器支持的标准 HTML 标记的控件,在你的web窗体中,凡是包含 runat="server" 属性声明的元素都叫做服务器控件(在VS.Net中的设计页面中,用一个小小的绿色箭头表示),你可以用原有的HTML元素并加上 runat="server" 属性使其变为一个服务器控件,这叫做HtmlControls,它可以直接映射到标准HTML标记;也可以使用.Net提供的全新的 WebControls,它比前者更抽象,功能也更加强大。不管采用哪一类控件,runat="server" 属性都将会使你可以以编程方式访问这些元 素。


  这 很容易理解,服务器控件就是在服务器端运行的控件,经过服务器端某些程序的解析再生成标准的HTML代码显示在我们的浏览器上,事实上,Web Form之所以可以提供最大可能的浏览器兼容性也是基于此理。与通常的理解稍稍有些不同,在asp.net中,一个页面(Page),一个验证控件,一个 用户控件(User Control),都可以看作是一个独立的控件,它来自于其它控件的组合。除了使用.Net提供的一系列控件外,你还可以到网上找一些免费的控件,www.asp.net中的Control Gallery一栏就收集了很多常用的Control。


  在asp.net 中,(传统意义上)可供你开发的控件实际上有两种:Custom Control 和 User Control。Custom Control 是纵向的,是对系统本身控件的继承和扩充,在程序中以DLL文件形式存在,User Control 则是横向的,是对系统本身控件的组合,在系统中以.ascx为后缀名。这两种控件功能相同,都可以为开发人员提供可复用的可视化UI组件,相比之下前者具 有更大的灵活性,同时开发起来比较复杂,而后者容易开发,但可重用性就比较差。一般来说用户会先用User Control来开发,只有当其不堪重用的时候才转而使用Custom Control。


  事实上,用户自己开发Custom Control并不是一件很困难的事,只需要定义一个直接或间接从 Control 派生的类并重写它的 Render 方法即可。System.Web.UI.Control与System.Web.UI.WebControls.WebControl两个类是服务器控件 的基类。 Control 类定义了所有服务器控件共有的属性、方法和事件。其中包括控制控件执行生命周期的方法和事件,以及 ID、UniqueID、Parent、ViewState 和 Controls(子控件集合)等属性。Control 没有用户界面 (UI) 特定的任何功能。如果创作的控件没有提供 UI,或者组合了其他呈现其自己的 UI 的控件,则从 Control 派生。 WebControl 类是从 Control 派生的,并为 UI 功能提供附加的属性和方法。这些属性包括 ForeColor、BackColor、Font、BorderStyle、Height 和 Width。WebControl 是 ASP.NET 中 Web 服务器控件系列的基类。如果控件呈现 UI,则从 WebControl 派生。


  可以重写从基类继承的属性、方 法和事件,并可以将新的属性、方法和事件添加到自定义控件中,所前所述,我们使用重写Render方法来实现对HTML代码的输出。Render 方法采用 System.Web.UI.HtmlTextWriter 类型的参数。控件要发送到客户端的 HTML 作为字符串参数传递到 HtmlTextWriter 的 Write 方法。


  下面我们使用VS.Net来开发一个简单的自定义控件(使用VS.Net的原因是为了方便开发者调试,在正式开发中我们经常使用的也是 VS.Net)。


首先,新建一个空白解决方案,然后为其添加两个项目,一个名为MyControls的Web控件库项目和一个叫做Web的Web应用程序项目,后者用于测试我们开发出的控件。


在Web 项目上点击右键,选择依赖项,使项目Web取决于MyControls,接着再为Web项目添加MyControls的引用(编译成的 MyControls.dll文件后被copy到Web目录的Bin文件夹下,你可以在任何地方使用这个MyControls.dll文件)。


在MyControls项目中添加一个Web自定义控件并命名为MyControl.cs,接着在Web项目中的WebForm1.aspx文件首行添加如下代码(用于向页面注册此控件):

<%@ Register TagPrefix="ccs" Namespace="MyControls" Assembly="MyControls" %>

在<form>标记之间添加如下代码(添加此控件到页面上):

OK,一个带有Text属性的自定义控件已经完成了,现在就可以运行它并观看效果了。
这个控件的结果仅仅是将一行文本输出到浏览器并显示出来,但是我们平时所用到的控件,小到如Label,大到如DataGrid,都是基于这一原理开发出来的。接着我们看一下这个自定义控件源文件(MyControl.cs)的组成



using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
namespace MyControls
{
// Attribute DefaultProperty指定组件的默认属性,ToolboxData指定当从IDE工具中的
//工具箱中拖动自定义控件时为它生成的默认标记
[DefaultProperty("Text"),
ToolboxData("<{0}:MyControl runat=server>")]
//类MyControl派生自WebControl
public class MyControl : System.Web.UI.WebControls.WebControl
{
private string text;
//Attribute Bindable指定属性是否通常用于绑定

//Category指定属性或事件将显示在可视化设计器中的类别

//DefalutValue用于指定属性的默认值
[Bindable(true), Category("Appearance"), DefaultValue("")]
public string Text
{
get
{
return text;
}
set
{
text = value;
}
}
//重写WebControl的Render方法,采用HtmlTextWriter类型的参数
protected override void Render(HtmlTextWriter output)
{
//发送属性Text的值到浏览器
output.Write(Text);
}
}
}



========

Imports Microsoft.VisualBasic
Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.ComponentModel

' Attribute DefaultProperty 指定组件的默认属性,
' ToolboxData 指定当从 ide 工具箱中拖动空间时为他生成的默认标记
<bindable(true), Category("杂项"), DefaultProperty("text"), ToolboxData("<{0}:MyControl runat=server><{0}:MyControl-->")> _
Public Class myControl

Inherits System.Web.UI.WebControls.WebControl
Private _text As String
Public Property Text() As String

Get

Return _text

End Get
Set(ByVal value As String)

_text = value

End Set

End Property
' 重写 WebControl 的 Render 方法, 采用HtmlTextWrite 类型的参数:
Protected Overrides Sub render(ByVal output As System.Web.UI.HtmlTextWriter)

output.Write(Text)

End Sub

End Class