CRI Radio
Apr 26, 2007
当铺(文/深雪)
它位于繁华大街之尽头,人车往还,尘多烟浓。但当铺的一角却出奇的幽静,尘不进烟不熏,阵阵爽心凉意。这间当铺的出现,仿佛只是偶然,抑或只是一种幻觉。
但站在柜台后的男人却是实实在在的,你递上有价值的东西,他会把一叠厚厚的纸币推到你面前。本来现今社会经济发达,只要肯努力,没有找不到工作的道理,太平盛世,要愁的不再只是温饱。
按
道理,当铺的生意应该很清淡。
无论时势变得怎样,经济状况如何,它总有一定的客路——
因为,它收受的不只是金银铜铁,它收受的是一切你愿意当的东西。
这一天,中年男人准备了一个直径8寸的玻璃瓶。他用高温把它消过毒后,以备下午使用。
中年男人想,那个客人今天必定会再来,他每一天都在等钱用。
他已经卖了他的股票,然后是公司,继而是汽车、古董、房子。3个月前他还卖了妻子、女儿,然后又卖他的儿子。
中年男人一直注视这人的存在。他计算过,这人会在破产后第47天来和他交易。
果然,他准时来了,带着一身一心的落魄。
下午3时,当铺的门被推开,破产的客人举步艰难地走进来。
他面容憔悴,头发斑白,而且,左手和右脚没有了,被整齐地砍去,留下空空如也的衫袖和裤管。
中年男人让他先开口。他说:“我还有什么值钱的?”
中年男人对这等情形司空见惯,淡淡地说:“没有了。”
客人露出悲痛而绝望的神色,提高了嗓门:“我把我的肾、肝、胆和左手右脚都当了给你,如果不是你一件一件压我的价,我哪会变成这样子!”
中年男人怕烦,打断了客人的话,干脆告诉他:“好吧,你还要当的话,便当掉你的心。”
那人一听,余下的一只脚忽然软了下来,他跪在地上,崩溃似地嚎哭起来。
3个月后,客人的债还清了,他拿着一叠当票,再次走到那沙尘不侵的角落,可是当铺却是重门深锁。
他抓在手里的一叠红色纸片,忽然变成白色,纸上的字也突然消失。
他张大了口。啊,典当了的赎不回来了。可怕的是,他连心也当了出去。
噼啪一声,他顿觉体内空空如也,人如橡皮,软软地滑落到地上,把一切都典当出去的人终于正式死掉了。
中年男人不记得他经营这所当铺有多少日子,心想没有一千也有八百年吧!
客人拿来典当的东西不外是心肝脾肺肾,又或是脑袋和性命,他收惯当惯,从没余下多少恻隐之心。
只是今天,他忍不住对那个16岁的少女说:“你好好想一想吧!”
少女却是固执非常:“感情是最可有可无的东西,不用考虑了!”
中年男子摇了摇头,“我宁可人当掉你的肾,或者你一双耳朵的耳膜。”他翻看了一下他的电脑记录,又说,“不如这样吧,我们现在正缺少一把长发,如果你需要钱,开高点价钱给你……”
谁知少女却说:“我知道感情的典当价值高,仅次于最心爱的性命。你知道吗?我当了感情给你,这一生便衣食无忧了。”
中年男人便只好带她走进密室,让她对着仪器倾注下感情,然后看着她麻木地离开。从今以后,喜怒哀乐将会与她绝缘。
中年男人望着她的背影,不禁心头一酸。他知道她今生将过得犹如植物人似的。
不知为什么,他对少女总是念念不忘,不是出于倾慕,而是他真心希望有朝一日,少女会来赎回她所抛弃的。
他清楚地知道这有违他的经营之道。千百年来,他把客人的器官、手脚甚至自尊、成就,乃至家庭、生命,一一在保管期间卖断给别人,以求新鲜热辣,得一高价。
但少女的一片感情,他却珍而重之地保存着,放在密室的保险柜内。
虽然纯真的少女感情价值连城,但动了恻隐之心的他宁愿少赚一笔也不肯出售。
也不知过了多少日子,他不停地把客人的眼耳口鼻及手掌大腿智慧福气收进卖出,夺取了别人身上的,巧妙地放到一掷千金的买家手里。
当铺开门关 门,就是不见那要钱不要感情的少女的影踪。
渐渐地,他有点厌倦这收收卖卖的营生。
这阵子,中年男人心情特别愉快,每天总是笑咪咪的,对客人也特别友好和气,脸上的神情无时无刻地充满期待。
转眼,过了许多许多年。
当铺来了一个客人。
那是位60来岁的老太太,衣着洁净朴素。她抱着皮包在当铺外犹豫良久,才轻轻走进。
老太太看到柜台后的中年男人,说:“真的一点也没变,这里依旧幽谧,一尘不染,而你,和50年前一个模样,现在,我比你老了。”
说完后,老太太递上当票。
中年男人一看,过去数十年的种种记忆一下子浮现起来。这老妇人就是50年前那舍弃感情的少女,只有她有权拿当票回来赎回她曾嫌弃的。因为,这当铺拥有者只曾为她一人保留了赎回的权利。
现在他望着老去的她,却只有心酸和歉意。
“不在了。”他对她说。
她平静地问:“不是可以赎回的吗?”
他望着她,没有回答。
她再问:“你卖给了别人?”
他摇头。
她微笑。
“这可好,”她说,“这数十年来我吃得好住得好却不知喜悦,父母兄弟逝世,我不感伤痛,有人舍生爱我,我不懂感动。你不知道,这50年来,我从没有真心地笑过一次呢。”
他垂下眼来。
“怎么了?”她说,“我付双倍的赎金好吗?”
他却对她说:“从前,我也和你一样,不会怜悯不会同情更遑论动心。于是,我好奇地把你留下的感情看了又看——”
老妇紧张地望着他。
“最后,”他继续说,“我用了你的感情。”
刹那间老妇身处的当铺由下而上地在她身边蒸发,骄阳下只剩她立在尘土飞扬的大街之上。她不觉愤怒也没伤心,只是呆呆地站着,一如过去50年她麻木地度过了一样。
此时从天上掉下来一张红色卡片,老妇人俯身拾起一看,居然是张请柬。红底金字这样写着:“店东大婚之喜。”
老妇人看过后,仍旧是满脸满心的木然,这回她真的不知道,如何装出替他高兴。
都是钢盔惹的祸--日本鬼子的笑料大集合
有个日本后勤研究家青木孝治,就为了研究日军的钢盔,专门写了本书,叫《陆军铁帽物语》。
要是中国人想法,一个钢盔么,有什么好研究的?而日本人这个民族的特点就是喜欢钻牛角尖,比如一个电视节目就是人能穿多烫的袜子而不觉得难受,您说这不是吃饱了撑的么?可是日本人就真能弄一台微波炉来,让漂亮的女主持人把某演员的一双臭袜子慢慢加热,请他一次一次试穿,直到这兄弟嗷的一声叫起来。
别说,仔细看看青木的《陆军铁帽物语》,里面居然还有不少对当时历史的细节描写,不妨一读。比如,日军战斗帽后面那个屁帘儿,有人说那个“屁帘儿”是用来防中国大刀队砍脑袋的,青木的研究结果表明,那实际是为了防晒,分成几片又可以通风,虽然寒碜,确是不错的设计。
而日军的钢盔,虽然威风,却给它带来过不止一次的烦恼。
日军使用钢盔的第一次战争,是什么时候?
青木告诉我们,是九一八事变。日军装备钢盔,是根据第一次世界大战到欧洲观战的武官的报告,此后有装备而一直没有使用。九一八事变的时候,因为东北军不抵抗,日军的钢盔基本没有派上什么用场。真正用上,是在黑龙江和马占山将军所部的作战。
面对马占山的顽强抵抗,日军不断增兵,双方在江桥,齐齐哈尔等地展开一系列激战。这次战斗,日军试验了大批新式装备,不但钢盔的使用得到了检验,还使用了装甲列车,坦克等武器。这也是日军第一次在实战中使用坦克。值得一提的是日军使用来攻击马占山的雷诺NC-17坦克,有相当一部分是从北大营东北军仓库里夺取的。
坦克的使用被证明在突破战中非常有效,而钢盔也的确减少了日军的伤亡。
但是,日军很快就发现制式的钢盔存在相当大的问题。
那就是钢盔的里衬太薄,在黑龙江寒冷的天气里,日兵出汗以后如果不加处理,很快脑袋就会和钢盔冻在一起,危险而又好笑。强行摘取,无意中会连皮肉扯下,而最初日军对这种古怪的情况又不会处理,用暖水浇钢盔进行救护,结果造成被冻结的头皮直接剥离。日兵形容宿营的时候,经常听到头被和钢盔冻在一起的新兵摘钢盔时发出阵阵哀号。攻占齐齐哈尔,日军阵亡三百余人,因为冻伤减员的却几乎达到两千,其中不少就是这种“钢盔头”伤。
为了解决这个问题,日军士兵自发想办法,在钢盔里垫上纱布或者棉布,虽然样子不好看,但是解决了冻伤的问题,这也是装备钢盔后给日军造成的第一个大问题。
诺门坎之战,日军又发现大量日兵尽管戴着钢盔,依然在作战中因头部中弹而死,反而是不戴钢盔的没有这样高的比率。
这可就奇怪了,难道苏联人用了带磁性的子弹,专打钢盔?
莫名其妙的日军派出专家到前线考察,这才真相大白。
大家知道,钢盔是保护头部的,但并不是子弹打不透,真要是子弹打不透的钢盔,人的脖子就该吃不消了。它主要是防御弹片,对于子弹,如果对方的子弹不是击中钢盔正中,由于钢盔是一个弧面,便大多会滑飞。这就是钢盔的防护作用。
然而,诺门坎之战,日军头部中弹的士兵,多半是头盔正中被苏军一枪命中,钢盔洞穿,钢盔里面的脑袋当然也就一塌糊涂了。
那么,苏军怎么会打得这样准呢?日军研究以后恍然大悟。原来,日军当时使用的钢盔,前面正中有一个小红太阳,那是日军的标志。
大家知道,红色在所有光线中是最醒目的。
于是,苏军老远就能发现日军的士兵,并且瞄着小红太阳开火。苏军使用的纳干式步枪笨重后坐力大,但是也有优点,那就是弹道稳定,穿透力大。因为小红太阳正好在头盔正中,一枪命中,日兵大多数糊里糊涂就见上帝去了。
诺门坎战后,吃了大亏的日兵被迫取消了钢盔前面的小红太阳。
关于钢盔,比较离奇的,大概要算日军“军神”饭塚国五郎的死了。
饭塚国五郎,日本陆军少将(特晋),101师团101联队联队长。战中有一段时间日本东京各大电影院连续放映“军神饭塚联队长”的战地录影,这老鬼子相貌狰狞,胡子拉茬顶着个破钢盔,挥战刀又冲又杀的拽得很。
按说,做到联队长,手下好几千人,没事儿扣钢盔在第一线摆酷的机会不是很多。不幸的是饭塚的命比较奇,自己不用操心,有人来催他摆酷了。
来的就是日本著名战地记者小悮行男。
小悮是来庐山前线采访饭塚的。
庐山一线中国军队奋勇抵抗,巧妙利用地形与日军顽强周旋。日军虽然装备精良,无奈庐山是李四光特别偏爱的那种冰川造山,形状雄奇,道路险峻,中国军队把迫击炮搬上山顶,日军形容中国军的迫击炮“如同雨点从天而降”。这战斗的结果就可想而知了。饭塚面对的是中国陆军160师,师长华振中,这是广东粤军唯一一支也戴钢盔的部队,从这个特点也可以明白这绝对是一支精兵。双方在东孤岭浴血苦战,饭塚连续发动了十五次进攻,依然无法拿下中国军队的防线,损兵折将。
所以,采访的时候,饭塚诉苦极多,按说,离军神的标准差的可不是一点儿半点儿。
不过,饭塚的形象很吸引小悮。因为苦战,饭塚晒得极黑,眼睛里全是血丝,胡子已经多日不刮,显得相貌狰狞。尤其是天气酷热,这位联队长大人上身赤膊,显得确实很猛。
记者的眼光就是和常人不一样,多少年以后,中国大兴安岭着火,有一位吴长富师长,也是因为没刮胡子,被记者当场看中,节目出来后,“大胡子师长“的美名天下传扬。
日本记者显然也是想让饭塚的形象天下美名扬,于是就建议饭塚给他们比划几个Pose,给东京的老乡看看。
被几个记者一捧,饭塚推辞不过,记者们选了附近一个比较符合战场气氛的高地,饭塚拔出指挥刀,又吼又叫,又蹿又跳,记者们的胶卷很快拍完了,大家都很满意。后来从影片效果看,这拍摄效果的确不错,如果饭塚活到战后,可以考虑去演电影。
但是,意想不到的事情也发生了。
这个高地虽然适合拍摄,却在中国阵地对面,而且,对面高地上就有160师一个哨所。饭塚的“外景地”正在哨兵的视线之内。
视线内也就罢了,视线内的目标太多,中国哨兵也未必注意得到。
但是日本记者为了表现效果,给饭塚扣上了一顶钢盔!
而且,当时日军钢盔的涂漆有些问题,华中正是炎热季节,长期暴晒,偶尔又是一场大雨,使用久了,钢盔的绿漆剥落,露出钢底,在阳光下闪闪发光。
于是,中国哨兵就发现远处有一个灯泡似的东西在那里又吼又叫,又蹿又跳,定睛细看 – 哦,是个鬼子阿!
看见是看见了,中国兵也没什么办法,距离太远,中国军队手里没炮,汉阳造又够不着,几个哨兵看着饭塚表演,越看越别扭,弟兄们一致认为,这鬼子太拽了,得教训教训他。
要说饭塚真是死催的,你堂堂联队长上前线又蹦又跳这么刺激弟兄们干吗?
我说也是活该,饭塚就算这次不死在国军手里,下次也会踩上八路的地雷,您看他这名儿起的 – “犯中国我狼”啊!
叫这名字再让他囫囵回去,这就太欺我中华无人了。
那哨兵班长看着鬼子耍酷正又运气又没辙的时候,忽然眼前一亮。
这哨兵班长正看着饭塚咬牙呢,忽然就瞧见几个老兵晃晃荡荡沿着战壕走过来了,他们背的可不是汉阳造,而是三八大盖儿。
哨兵班长不禁眼前一亮。
三八大盖儿,即日本造三八式步枪,因为枪机上有一个防尘罩而得名,侵华日军步兵的标准装备,射程远,射击精度高,饭塚所在的那个高地,汉阳造打不着,三八枪的射程可是正好合适。
这位哨长的理解是有科学依据的。三八式步枪的标尺射击2400米,而汉阳造只有2000米,三八式步枪子弹初速760米/秒,汉阳造是600米/秒,更重要的是日本工业技术发达,因此制造工艺精良,汉阳造的设计虽然不错,材质和制作水平则无法相比,理论上有效射程600米,实际那是样枪的数据,发到士兵手里的,能打四五百米就不错,而三八枪的弹道,无风天气在800米上取准依然相当准确。淞沪战役,装备汉阳造的国军结壕阻击装备三八枪的日军,没少吃射程近的亏。
问题是160师的╳兵怎么会有三八式步枪呢?
缴获的?中国军队的确抗战中缴获过不少三八式步枪,不过国军对缴获武器的利用一向不佳,比如日军投降的时候交给国军不下三百架飞机,国军能在一年之内把这些飞机全部玩成废品卖了零件。国军用三八枪,主要是两个来源,一个是抗战开始之前,日本有个军火商叫泰平组合唯利是图,曾经卖给中国不少武器,其中就有三八式步枪。战争发起后,日军内部大骂泰平组合上下该全体自裁;另一个是一九三六年陈济棠在广东试图独立反蒋,日本人支持了一大批军火给他,其中也不乏三八式步枪。考虑到160师出自广东,这玩意儿多半是鬼子送给陈济棠的这批枪。
不管怎么来的,这位哨兵班长赶紧把几个老兵拦下,给他们看饭塚的表演。哪儿?喏,就是那个一闪一闪发亮的东西。
饭塚只扣着个钢盔,赤膊根本没穿军服,几个老兵也辨不出他的身份,但是看他耀武扬威的样子,一致觉得这赤膊鬼子太猖狂了。老兵油子枪法好,说着说着就动了真格的,把枪一摘就瞄上了。
这时候,饭塚的采访已经到了尾声,正在和记者们道别。不知怎么的,饭塚聊起了他的前任,也是好友的加纳治雄(原101联队联队长,1937年8月在大场和八十八师交战时阵亡。),他说,听说加纳死后阴魂不散,常常在家里闹鬼,自己要是战死了,希望不会象加纳那样,一定安安静静的。
大家听了哈哈一笑,记者们作别下山。饭塚也准备往回走,一转身,正好把一个大光膀子亮给国军了。
这时候,那老兵也瞄好了,一扣扳机 -- “砰”,饭塚应声而倒。
按说,饭塚挨上一枪就送命的概率不高。三八枪虽然射程远,但是子弹穿透性太好,一打俩眼儿,不容易造成致命伤,忻口战役国军李仙洲军长被日军一枪击中,洞穿胸部,前后透亮,还在和人聊天呢,根本没觉察到自己负伤。
但是给饭塚这一枪,打得实在是他X的太准了,附近的日本兵赶来救护,发现这一枪正从饭塚的心窝穿过,把心脏都打穿了。。。
奥运会射击冠军的水平。
饭塚在101师团人称“勇将”,他的死对前线日军的士气打击沉重。
这一部分中国军队方面的记录来自于独九旅的官兵回忆,并不是日本方面的材料。(160师在庐山拼得太狠,下来部队收容,缩编为独立第九旅,是十二集团军的王牌部队。)遗憾的是虽然有此记载,却没有击毙饭塚的中国老兵的名字。日本方面的记载,则提到饭塚这个人实际为人不错,对朋友义气,在军校学雷锋,喜欢思索还能写诗。。。
还是不要提这个了吧,谁叫你来中国打仗?谁叫你带101联队打进南京城?谁让你叫个名字作“犯中国吾狼”?
言归正传,钢盔反光暴露了饭塚的目标,算是这铁帽给日军带来的又一个悲剧吧。不过这问题一直没有得到解决,直到太平洋战争逐岛争夺,日军才用在钢盔上涂抹煤焦油的方式多少改进了其反光性能。
然而,钢盔也不是全无用处。
青木一直没有提到自己为什么对钢盔有如此浓厚的兴趣,但是,我在他这本书里看到的一个例子,按老萨的分析,应该正是他自己的经历。
这个例子说的是一九四五年,山东一支日军出发讨伐,走到路上已经天晚,于是找了个山村宿营。
问题是日军做梦也没想到,这个村子表面平静,实际上却是八路的一个重要据点,八路发现日军进来,一枪没放,悄没声的溜到了打谷场,埋伏了下来。
干吗选打谷场呢?您一会儿就明白了。
吃完晚饭,按照条令的规定,日军小队长吹哨召集部下晚点名,地点就是打谷场 – 这村子唯一平坦的地方就是这里了。您看八路会选地方不会?
大家都跑出来晚点,一个初年兵(新兵)手忙脚乱出了笑话。原来日军条令规定,晚点穿军便服即可,而这个新兵没有记住,居然戴了顶沉甸甸的钢盔来晚点。
日军哄笑。
笑声未绝,忽然雷声霹雳,电光四射 – 下雨了?哪里,是八路扔出了手榴弹!
青木认为,有理由认为这是八路军的主力部队,理由有二。第一,这支八路投弹动作准确,而且肯定都是把手榴弹拉火后等上两秒再扔,结果手榴弹各个凌空开花,空场上的日本兵连杀伤死角都找不到;第二,这支八路用的手榴弹不是那种黑火药,一炸两片的边区造手榴弹,而是缴获自日军的四十八瓣卵形弹!
这种弹虽然投掷距离不如国军的德式手榴弹,可是破片多,散布广,对露天的日军杀伤极大。这个小队的日军结果“全灭”,绝大多数人死于击中头部的手榴弹片,没死的只有一个,就是那个犯糊涂戴着钢盔跑来晚点的新兵了。钢盔挡住了大多数弹片,这个小兵只是肩部负了弹片伤。
青木是通过这个例子,说明钢盔的优点。他没有提这个新兵的姓名。然而,根据他自己的履历,青木是1944年加入日军第五十九师团的,1945年的战斗中,他当然依然是“初年兵”,而他所在的部队在增援文登的战斗中,小队上下官兵“全灭”,只有青木一人带伤幸免。。。
我很怀疑这里面提到的“初年兵”就是青木自己,虽然没有更多的证据。
另一个例子,青木就说得明白 – 就是他自己中队的事情。这个,是不戴钢盔的恶果。
谁不戴钢盔呢?是青木中队里面的一个叫井口的老兵油子。
这日本军队里面,十分讲究资历,老兵不但欺负新兵,甚至对军纪也往往当作耳旁风,青木的中队长年轻,打仗也差强人意,就有些镇不住场,于是老兵就越发恣横起来。
井口就是其中比较突出的一个,这个老兵在中国打了三年仗,杀人不眨眼,中队上下都有些怕他。这井口从来自己不打洗脸洗脚水,都是新兵伺候,稍有不如意就逼新兵下跪,一边背阵中训一边互打嘴巴,美其名曰教育。更令人厌恶的是井口十分贪婪,新兵家中寄来的食品,都是他先品尝,吃剩的才能给新兵。而补给的砂糖,罐头,也都是他来分,他一个人要占好几个人的分,新兵还敢怒不敢言。
有一天,正在分发补给来的香烟,村子周围忽然枪声大作 – 八路来袭击了!因为战事紧急,日兵们抄起枪就打,来不及做任何准备。
别的日本兵都扣上钢盔,开始还击,只有那个井口在那儿犹豫。原来这家伙太贪了,抢了好几个新兵的配给,一大堆香烟,全都放在钢盔里。
青山的说法,这个井口一直都是这么干的。行军中香烟不好保存,放在衣服口袋里不是揉碎了就是弄湿了,没法抽。一般日兵分上三根两根,转眼抽完也就完了,但是井口每次都强夺新兵的配给,弄来的香烟吸不完,他也有办法,就放在钢盔里,往背后行李上一扣,走一路下来也照样好抽。
日本军队的军律不是出门必须戴帽么?
井口是老兵么,而且一贯骄横,当官的还真不敢管他。
这次,井口还有点儿舍不得把抢来的香烟倒掉,这家伙非常蛮横,让一个新兵把自己的钢盔摘下来给他,新兵不愿意摘,又不敢不摘,正犹豫呢,那井口早被八路一枪击中倒了下去。
卫生兵赶来想抢救,已经不需要了,井口被一枪正中脑门,八路的子弹不象日本子弹那么精良,穿透力不够,只能打出一个盲贯,弹丸在井口的脑袋里翻跟头做豆腐脑。。。结果可想而知,老兵油子井口当场毙命。
人家都戴钢盔只有井口光着头,估计这井口鬼子怪异的形象引发了八路的误会,把他当成指挥官了,早说山东八路盛产神枪手。。。
鬼子的钢盔啊,真是戴不戴一样的成问题。
包子和面条的战斗
包子和面条大打出手,但是包子因为太肉脚,
被面条打的落花流水,
于是在离去时,对面条撂下一句:“好胆别走,我去叫伙伴来教训你”。
包子就去约了煎包、馒头、面包等,准备去找面条理论理论,
在路上遇到了泡面,包子等人于是围住了泡面一阵毒打。
泡面被青红皂白打了一顿后,问包子为何打他?
包子回答:面条,别以为烫了头发,我就不认得你!
Part 2
话说泡面被海扁完以后,觉得很不爽。
于是伙同米粉,乌龙面,日本荞面和炸酱面要去找包子算帐。
不料,在路上遇到了小笼包,泡面仔细看了一会儿,说道:“兄弟们,上!”
泡面扁的更是用力。在扁完小笼包后,面族人扬长而去。
后来其他人问泡面说:“你刚刚扁的好卖力,我们都不知道你那么讨厌他耶。”
泡面说:“本来想稍微K一下就好,没想到他还装可爱,还穿童装……越想就越气。”
Part 3
话说泡面海扁完小笼包后,真是越想越气,由于想来个续摊,再次伙同众面们再去找小笼包。
没想到在路上遇到了割包,哗!泡面狂怒一声,带头狂扁。
打得众面们都有点觉得残忍了,众面把泡面拉开来,问它说:“你怎么这么生气呀?”
泡面说:“太过份了,装可爱就够了,还给我头发中分……。”
Part 4
小笼包知道自己为何被扁之后……
觉得很受委屈……
于是把情形告诉菜包、豆沙包、水煎包、酸菜包……
“你待在这边.我们去找那个烫头发的”
他们很生气的去找泡面算帐……
途中,遇到了米粉,
于是狠狠的把米粉修理了一顿......
离去的时候说:“老兄,自己头发烫坏了,就该乖乖待在家里……
不要看人家可爱,就心理不平衡,变态!!”
Part 5
话说包子上次被面条海扁一顿后,心情又够郁卒,
因此找了小笼包、菜包、水煎包、汤包等包一起去吃火锅去去霉气,
一进门看到了金针菇,
包族不分青红皂白把金针菇打了一顿,
留下一句话说:“不要以为你戴了帽子我就认不出你来!”
Part 6
话说面条一族和包子一族,两族族人积怨已深。
两方人马常常看不顺眼就互殴一场。
一天,面族一群人在路上闲晃,看到叉烧包一人落单。
仇人相见分外眼红,想起之前泡面等人的恩怨,
二话不说,就把叉烧包恶狠狠的痛打一顿,
面条边打边嚷……
“给我用力打,不要因为他吐血了,就放过他!!”
Part 7
可怜的叉烧包头破血流的带著满身伤去找包子求救,
包子一怒之下,伙同红豆饼绿豆糕前去火拼。
战情一触即发,路人纷纷走避,
只见薯条一人悠闲的在压马路,
一票人二话不说,批哩啪啦拳打脚踢的将薯条狠狠揍了一顿
包子怒气未熄,又补了两脚,说道:“打了人还敢穿的金光闪闪的逛街!欠扁!给我继续打。”
Part 8
话说薯条被打了之后觉得实在太没道理了,
就去找他的好朋友,香蕉条诉苦,
香蕉条一听,觉得是面族拖累了薯条,
于是就找了刀削面,拉面和空心粉去找包子族定场子,
没想到在路上就遇到了肉丸,
这些面族不分清红皂白就把肉丸给打到地上爬不起来。
走的时候香蕉条撂下一句话,
“下次隐身术没练好不要出来被我看到,半透明的包子,一下就会被发现啦!”
Part 9
话说面条和包子持续不断的街头战争,
已经造成不少无辜的路人遭殃,甚至成为战争的一份子。
这一天
面条和包子两大族群又在街头打了起来
只见一个无辜的路人同时遭到双方人马围殴
引起不少围观群众的同情……
路人甲:“ 怎么回事啊? 为什么两边联手打一个路人呢?”
路人乙:“ 听说是因为那个人立场不明确的关系。”
路人甲:“ 有这么严重吗? ”
路人乙:“ 没办法,谁叫他是"面""包"呢。”
Part 10
话说包子与面条的梁子越结越深,
每当两派人马上街寻仇时,行人莫不走避。
一天面条家族们在压马路之际,
意大利面看到了对街的馒头,
大喝一声:“有胆子别走!”
冲到对街和众兄弟把馒头海扁了一顿。
奄奄一息的馒头说“你……你为什么打我?”
意大利面狠狠的答“你以为你去拉皮我就认不出来吗?死包子!”
微软一个罕为人知的无敌命令
答1:杀进程很容易,随便找个工具都行。比如IceSword。关键是找到这个进程的启动方式,不然下次重启它又出来了。顺便教大家一招狠的。其实用Windows自带的工具就能杀大部分进程:
c:\>ntsd -c q -p PID
只有System、SMSS.EXE和CSRSS.EXE不能杀。前两个是纯内核态的,最后那个是Win32子系统,ntsd本身需要它。ntsd从2000开始就是系统自带的用户态调试工具。被调试器附着(attach)的进程会随调试器一起退出,所以可以用来在命令行下终止进程。使用ntsd自动就获得了debug权限,从而能杀掉大部分的进程。ntsd会新开一个调试窗口,本来在纯命令行下无法控制,但如果只是简单的命令,比如退出(q),用-c参数从命令行传递就行了。NtsdNtsd 按照惯例也向软件开发人员提供。只有系统开发人员使用此命令。有关详细信息,请参阅 NTSD 中所附的帮助文件。用法:开个cmd.exe窗口,输入:
ntsd -c q -p PID
把最后那个PID,改成你要终止的进程的ID。如果你不知道进程的ID,任务管理器-进程选项卡->查看->选择列->勾上"PID(进程标识符)",然后就能看见了。
答2:xp下还有两个好东东tasklist和tskill。tasklist能列出所有的进程,和相应的信息。tskill能查杀进程,语法很简单:tskill 程序名!!
《亮剑》中李云龙原型
1943年10月,时任太岳2分区司令员的王近山奉129师刘邓首长之命,率太岳军区16团从太行山回师陕北,保卫延安。全团2000余名官兵在王近山的率领下,夜行晓宿,一路西行,很快就来到了太岳根据地边缘的临汾县韩略村一带。据前方侦察员报告,此村旁的公路上经常有日军的车队经过,估计是向前方运送弹药或给养的车辆。这一带地势险要,非常适合打伏击。经过认真分析敌情,大家认为:我16团长途行军至敌人大后方,敌人尚不知晓我方的情况。我军在敌人大后方突然出击,能够作到出其不意攻其不备。若以我精锐之师依托有利地形伏击敌人的车队,取胜的把握很大。如遇上敌人的后勤弹药给养车队,还能给部队搞一些补给。我部虽担负赴陕北保卫党中央的任务,在此途中速战速决打个小仗不妨碍完成主要任务。王近山司令员当机立断,决定来它个“顺手牵羊”,利用韩略村的有利地形和敌人的松懈麻痹,以速战速决的手段,打一个干脆利落的伏击战。
10月24日凌晨,我16团担任伏击作战任务的6个连队借着浓浓的夜色,隐蔽地进入了韩略村公路两旁的庄稼地里,迅速作好了战斗准备。上午8时,由临汾方向传来了汽车发动机的声音。紧接着,编有3辆小汽车和13辆卡车的日军车队,满载着日军官兵进入了我伏击圈。王近山司令员一声令下,担任截尾任务的6连首先打响了第一枪。紧接着,前面的日军汽车也在接二连三的地雷爆炸声中被掀翻在路旁。突遭袭击的日军官兵慌忙下车应战。我军布置在公路两旁的轻重机枪火力,居高临下,泼水般地扫向敌人。顿时,整个韩略村公路上杀声震天,弹雨横飞。许多日军还没弄明白子弹来自何方,就糊里湖涂地送了命。王近山司令员见突遭袭击的日军惊慌失措,根本组织不起有效的抵抗和反击,遂命令司号员吹响冲锋号。冲锋号一响,我军官兵端起刺刀向敌人发起勇猛的冲锋,一场惊心动魄的肉搏战展开。只见公路上刀光闪闪,喊杀声、惨叫声不绝于耳。战士们的刺刀和大刀与日军指挥官们的军刀相互格击,闪闪的刀光下不时传来日寇狼嚎般的惨叫声。经过近3 个小时的血战,16辆车上的180余名日军全部被我军歼灭。
战后,我军从打扫战场时缴获的文件中得知,被歼的这支日军是侵华日军华北方面军司令冈村宁次组织的所谓“皇军军官战地观战团”。
原来,冈村宁次为了推行他在“扫荡”我太岳根据地时所采用的所谓“铁滚式三层阵地新战法”,不仅到处大吹大擂,还特意组织日军“***派遣军步兵学校”的第5、第6中队和其他部队的一些军官,组成所谓的“华北派遣军司令部战地观战团”,共180余人,赴太岳战区观战学习。没想到,观战团一到太岳区,就迎头碰上了我八路军太岳军区16团。真是冤家路窄,观战团里面就有不少日军军官曾和16团交过手。今日狭路相逢,韩略村一战,包括一名少将旅团长、一名联队长在内的120余名日军军官和60多名士兵悉数被歼。不可一世的“皇军军官战地观战团”在我英勇的16团面前灰飞烟灭。王近山司令员率16团“顺手牵羊”,大灭了敌人的威风,也为赴陕北保卫党中央献了一份厚礼。
从朝鲜战场上归来,王近山曾任山东军区副司令员、代司令员,后被任命为北京军区副司令员,中华人民共和国公安部副部长。1955年,刚刚不惑之年的他又被授予中将军衔和一级八一勋章、一级独立自由勋章、一级解放勋章。偏偏打这时起,王近山触上了巨礁。将军的耿直,出生**养成的不屈不挠的个性,以及感情的变故终于使他从辉煌跌落尘埃,经历了一番痛苦的人生曲折。事情起因是王近山要求与妻子———对革命作出过很大贡献的韩岫岩离婚。此事惊动了中央。
抗日战争时期,韩岫岩是八路军医院的护士,是有名的院花。而且,她一家12口人都参加了八路军,还为医院驮来了许多医疗器械和药品,被称为半个医院。这样光荣的背景,加上“院花”之誉,使韩岫岩在当时很有名气。
时任八路军一二九师三八六旅七七二团副团长的王近山负伤了,一颗子弹击穿肺部,另一颗子弹击伤左臂,伤势很重。经过韩岫岩等医护人员的精心护理,王近山很快康复了。自然而然两人就认识了。一同住院的一二九师三八五旅七六九团团长陈锡联一看这情景,挺般配的,于是从中牵线搭桥,成就了他们的婚姻。
经过无数次的生离死别,应该说两人是有感情的,也有着非比常人的婚姻基础(韩岫岩和王近山生了八个孩子,其中一个送给了后者的司机,一对不能生育的夫妇),人们都这样认为。但事实的发展却大大出乎人们的预料。
新中国成立后不久,刘、邓大军进军大西南剿匪。在山城重庆,王近山应邀给大学生们做报告,他那幽默风趣的语言,极富传奇色彩的经历,把大学生们全给迷住了。大学生们把鲜花、掌声抛向了王近山。
抛向王近山的还有爱情。她不是别人,正是他的妻妹。一方是威风八面的年轻将军,一方是谈吐风雅、漂亮迷人的女大学生,英雄美人,自然而然地靠拢在一块…… 美女英雄才子佳人永远是千古佳话,但如果英雄背后早有了位“女英雄”,那事情就麻烦了。按照中国五千年历史所确定的道德准则,喜新厌旧是不可被原谅的,随着王近山和女大学生的感情越来越深,和韩岫岩的冷战也在加剧。
韩岫岩当时就身为海军医院的副院长,得知第三者竟是自己的亲妹妹,她怎么也不能接受这个现实。要个说法也好,鱼死网破也好,报复心理也好,不管她出于什么动机,事情已经闹大不可逆转了。正如当年陈锡联所讲的,“两人是一个脾气,针尖对麦芒”,过去打仗时聚少离多,现在和平时离少聚多,家中却不断吵闹,真的如“针尖对麦芒”一样地对峙起来。
韩岫岩向组织报告,投诉信最终落到了刘少奇手里,他派人来做王近山的思想工作,被王近山顶了回去。此时的形势已经对王近山很不利了:已经有中央要处理他的风声了;***自然对他也很不利,喜新厌旧的陈世美不会受人欢迎;更为他伤心的是女大学生受不了巨大的压力,她背弃了她的爱情,一夜间离开了他无影无踪了。然而被激怒了的王近山像一头雄狮一样无法劝阻,于是这个湖北汉子竟向组织递交了离婚申请书。组织上找他谈话,不行;老首长来打招呼,也不行。
一位首长批示,离婚属家务事,是法院所管,组织上不好干预。
几天后处理意见下来了:撤消大军区副司令员职务;行政降为副军级(军衔从中将降为大校);开除党籍;调往河南某农场任副场长......
虽说在心理上已有所准备,但真正等到处分下来时,而且是一杆子撸到底,却是大大出乎意外,没有了官职,王近山还不太在乎,可是连党籍、军籍也都开掉了,真使他心里感到一片冰凉。人背运,倒霉的事一齐来。让他伤心的是,付出了极其惨重的代价,而又没有得到预期的结果,出于各种各样的原因,他的妻妹并没有和他结合,从他的生活中彻底消失了!一个“情”字,把将军深深地刺痛了。
1964年,王近山被安排到河南周口地区西华县黄泛区农场当副场长,分管园艺,负责上千亩苹果园的种植、养护、销售。就在他收拾东西时,曾在他家工作过的姑娘小黄来看他。得悉真相后,温文善良的小黄经过认真考虑,不顾家人反对、朋友劝阻,毅然决定跟着将军去农场,照顾他的生活。
“我这么大年纪了,你跟我去吃苦干吗?”王近山知道,这一去也许就是当一辈子农民。
“首长,只要你不嫌弃我,我就跟你一辈子,照顾你一辈子。”小黄深情地对着将军说。
小黄叫黄慎荣,由部队派到王近山家中担任公务员,耳闻目睹,将军除了工作还是工作,只有星期天,才抽出一点时间带孩子们出去买生活用品(孩子们住校,只有星期天才回来),乐一乐。1959年小黄离开将军家,到某工厂上班。小黄了解他家情况,将军是一个好人,从不说别人一个“不是”。在和人交往中,他认为你是一个好人,他会对你特别的好;对待部下,交待的工作按时完成,他满意了,他会把你当成好朋友一样看待,老远就跟你打招呼。
将军怎么会有那样的错呢?在她眼里,将军永远是那么高大,永远对党赤胆忠诚。看到将军落难,她想:“我应该去照顾他。”
10月初,小黄赶到河南和王近山结了婚,成了一对相依为命的患难夫妻。小黄被分配到农场幼儿园工作。
多亏有小黄的无微不至的照顾,王近山才能艰难地度过在黄泛区的漫长岁月。他在战争年代负过七次伤,四肢中有三肢重伤,一条腿和一条胳膊都骨折过。医生量血压,都是在腿上量,因为胳膊受过伤,血压量不准,一边高一边低。平时穿的皮鞋也是特制的,一边要比另一边高出五公分,这样将军才能正常走路,站得久。两腿不能吃力,大便不能下蹲,否则就起不来。还有肺部的伤,要定期检查、吃药……
这些困难,如果没有小黄悉心照料,单靠将军自己是无论如何克服不了的。
在农场,王近山仍和当年在战场上一样,认真负责,将精力全部扑在工作上。但农场的生活并不平静,文化大革命很快就波及到那儿。1968年麦收时期,其他场长都被***了,由王近山暂时主持工作,处在风口浪尖上。造反的学生要求组织大批斗、大批判,阻止人们割麦子。王近山火了,和学生们干上了,拍着桌子大声斥责:“绝不能耽误割麦子,夏收夏种,虎口夺粮,一年就这几天,一耽误就是两季。不信我的话,你们可以回去问问父母亲,是不是这回事。你们说什么都行,但一定要等到割完麦子种上秋粮再说。”学生一下子被震住了,乖乖地跟着他去割麦子了
王近山还是受到了冲击。有的学生提出来,王近山搞特殊化,生活腐朽,上厕所还要坐一把椅子。学生们不了解,那是没有办法的办法啊,因为他不能蹲,一蹲下就起不来,于是就在一把椅子上挖了一个洞,大便时就坐在上面,那滋味并不好受。面对一群不懂事的娃娃,王近山被气得无话可说,无奈地对他们道:“你们说我腐朽,你们也可以去试一试。”
国家多事之秋,一个赫赫战将岂能长期在农场务农?王近山的心不时飞回部队,他要回部队继续为国效力。也就在1968年春,王近山也想到了自己的老部下肖永银,想到了老上级许世友(时任南京军区司令员),想通过他们向上反映真实情况,帮助自己摆脱眼前的困境。许、王、肖、尤(太忠)都是红四方面军的战友,彼此有着很深的战友情谊,重于山,浓于水。许当年是红四方面军第四军军长,看着王从放牛娃一步一步成长为一名出色的红军高级指挥员,对其过人的勇气和高超的指挥才能非常器重。一天,肖永银正在南京的家中吃饭,王近山的二儿子来了。他对肖说:一是他想当兵;二是父亲的问题能否向上反映一下,重新处理。肖当即表态:你当兵没有问题,这个我可以想办法解决;关于***的问题,是中央处理的,不经过中央谁也不好处理。
沉思了一会儿,肖永银出了一个主意:要王近山直接给毛主席写一封信,第一,自己有错误应该检讨;第二,没有的问题要讲清楚;第三,说一说想法,自己年龄不大,还想为党工作,请批准回部队继续做点贡献。肖又说,中国***党第九届全国代表大会即将召开,恰是一个好机会,信可由许司令直接面呈毛主席。
不久王近山分别给毛主席、许世友、肖永银写了信。第二年春天,“九大”在京召开,许世友在毛主席面前为王近山说了不少好话,1969年,王近山调到南京军区任副参谋长,重新回到部队。当他到南京赴任时,走出火车站,一手提两只土鸡,一手拎行李,简直就象一进城走亲戚的农民,令前来迎接的老部下李德生、尤太忠唏嘘不已。
将军将家统统交给了小黄料理。7个孩子陆续来到南京的父亲身边,加上小黄生的两个孩子,家庭显得热闹非凡。小黄原先准备到附近的工厂工作的,一切都安排好了,但王近山不同意,说:“我的身体不好,你的身体也不好,家里的事又多,你老请假,三天打鱼两天晒网,拿了工资让别人替你干活,行吗?”严格治军之法,被他移植来严格治家。就这样,小黄放弃了出去工作的打算,当上了部队家属,一心一意在家照料家庭。
1974年,王近山渐感身体不适。南京军区总院的护士经常一大早赶到他家里,趁他还在被窝里的时候为他打针,并做一些简单的检查。但是,一到钟点,不管完了没有,也不管你如何劝说,他都会立刻上车去军区上班。经化验,他的病情非常严重。10月30日,医生们把王近山堵在家里,然后“强制”送他到总院进行彻底检查。11月7日医院决定实行手术检查,腹腔一打开,结果是胃癌。不幸的是,术后他的肠子又破了,造成肠漏,大便从其中不断地漏出。
1978年初,王近山病重,中央领导极其关心。叶剑英打电话到南京军区说:“吃什么药给什么药,南京不行就送到北京治疗。”再次复出的***也多次打来电话询问病情,十分关注将军的生命安危。
1978年5月7日,中央军委训练部主任宋时轮到南京时对军区领导同志传达了邓小平对王近山的评价:“二野在解放战争中谁的功劳大?是王近山同志,在许多艰苦战斗中最后是王近山同志去完成的。”王近山病重期间,老首长、老部下、老战友纷纷从各地赶到南京看望他,董必武的夫人何莲芝和谢觉哉的夫人王定国也曾专程赶来。
韩岫岩从北京赶来想看望他时,表示愿意为他康复出一份力气,但王近山至死不愿再见发妻一面
1978年5月10日,将星殒落,一代名将与世长辞……
王近山去世后,***在讣告上特注:王近山为军区顾问
5月17日举行追悼会。叶剑英、***、刘伯承、徐向前、李德生、彭冲、宋任穷等都送来了花圈,而其他生前好友送来的花圈就更多了,摆满了悼念大厅。追悼会的规模原定500人,实际参加1000多人。
俗话说清官难断家务事,夫妻之间的感情恩怨不是外人可以随便所了解的。假如一对夫妻的感情真的已经终结,那么靠***也好,靠组织也好,全部都是留人不留心的做法,不是吗?!你还要不要你的职位?荣誉?军衔?当然会有人因此而退缩,人是回来了,但能够挽回他(她)的心吗?中国人五千年来有个很难说好或不好的习惯:宁劝人和不劝人离。当时那么多人站了出来,对王近山警钟长鸣醍醐灌顶,说穿了无非是希望王近山在爱情和名利之间选择后者,不要作当代陈世美而已,有了那么多外界因素,这段感情帐还算得清吗??
喜新厌旧不是件好事,不得不承认这是人性中又一个颇为丑陋的地方,很多人都具有这样的通病。爱情本身是没有过错的,但爱也同时需要履行一份责任,王近山在这个方面并不怎么光彩。但是他在那么大的压力之下,在很可能他一世的英名和所有官位都将失去的情况下还是递交了离婚申请书,微凉又从心底对他有些佩服,他不知道有种战术叫自欺欺人,他也不知道有种战术叫好汉不吃眼前亏,为此,他二十五年的鲜血换来的一切全部付之东流,不管怎么说,他没有为了名利而退缩!他至少忠于了他自己的选择。
15位身份证转换18位算法
#include
/**************************************************************************
中华人民共和国公民身份号码升位实现
根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,
公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排
列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺
序码和一位数字校验码。
原有的15位号码身份证的含义:从左至右前6位表示行政区号码,第7至12位为
出生日期码,第13至15为分配顺序码。新制作的18位身份证证则是在前者的基
础上,增设了两位数的世纪码和1个校验码,它们分别在第7、8和第18位上表示。
地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码。生日期码
表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间
不用分隔符。顺序码表示同一地址码所标识的区域范围内,对同年、月、日出
生的人员编定的顺序号。顺序码的奇数分给男性,偶数分给女性。校验码是根
据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。
下面举例说明该计算方法。
某男性公民身份号码本体码为34052419800101001,首先按照公式⑴计算:
∑(ai×Wi)(mod 11)……………………………………(1)
公式(1)中:
i----表示号码字符从由至左包括校验码在内的位置序号;
ai----表示第i位置上的号码字符值;
Wi----示第i位置上的加权因子,其数值依据公司Wi=2(n-1)(mod 11)计算得出。
i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
ai 3 4 0 5 2 4 1 9 8 0 0 1 0 1 0 0 1 a1
Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1
ai×Wi 21 36 0 25 16 16 2 9 48 0 0 9 0 5 0 0 2 a1
根据公式(1)进行计算:
∑(ai×Wi) =(21+36+0+25+16+16+2+9+48++0+0+9+0+5+0+0+2) = 189
189 ÷ 11 = 17 + 2/11
∑(ai×Wi)(mod 11) = 2
然后根据计算的结果,从下面的表中查出相应的校验码,其中X表示计算结果为10:
∑(ai×WI)(mod 11) 0 1 2 3 4 5 6 7 8 9 10
校验码字符值ai 1 0 X 9 8 7 6 5 4 3 2
根据上表,查出计算结果为2的校验码为所以该人员的公民身份号码应该为
34052419800101001X。
Copyright (c) 2001-2003 Yacht Yang
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**************************************************************************/
static const char version[] = "0.30";
int main(void)
{
int id[18];
int mod[18] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1};
char crc[11] = {'1','0','x','9','8','7','6','5','4','3','2'};
long count;
int i;
printf("\n\t 中华人民共和国公民身份号码升位实现\n\n");
printf("\n\t根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,");
printf("\n\t公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排");
printf("\n\t列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺");
printf("\n\t序码和一位数字校验码。");
printf("\n\t");
printf("\n\t原有的15位号码身份证的含义:从左至右前6位表示行政区号码,第7至12位为");
printf("\n\t出生日期码,第13至15为分配顺序码。新制作的18位身份证证则是在前者的基");
printf("\n\t础上,增设了两位数的世纪码和1个校验码,它们分别在第7、8和第18位上表示。");
printf("\n\n");
printf("\n\tThe code only for 1900-1999:");
printf("\n\tInput id card 15bits:\n\t");
for(i = 0;i < 6;i++)
scanf("%01d",&id[i]);
id[6]=1;
id[7]=9;
for(i = 8;i < 17;i++)
scanf("%01d",&id[i]);
for(count=0,i = 0;i < 17;i++)
count += id[i] * mod[i];
id[i] = crc[count%11];
printf("\n\tnow answer for u:\n\t\t");
printf("last id = %c\n\t",crc[count%11]);
if(id[16]%2 == 0)
printf("Lady: ");
else
printf("Gentleman: ");
printf("ur id is:\n\t");
for(i = 0;i < 17;i++)
printf("%01d",id[i]);
printf("%c\n",id[i]);
printf("\n\tthank u using,any qustion mailto:\n\t
getch();
return 0;
}
<<成功.致富.快乐>>读后感
近日讀了英業達公司溫世仁先生的<<成功.致富.快樂>>一書
感覺應當對一些原本熟知的概念加以澄清
要如何看待得到和即將擁有的一切,包括生命愛情與財富
或者的話,也可用一些簡潔的詞匯來加以概括
保存一顆平常心態
“點一盞心燈”-----不是為了擁有無尚崇高的心
而是希望擁有平常心態
來對待生活以及事業上的平等與不平等
平衡的心理,超越名利是非的境界
真得是聖人所為,我不能但應盡力
“春有百花秋有月,夏有涼風冬有雪,若無閑事挂心頭,便是人間好時節.”
此言的雲門禪師應當為聖人列.
我常在想
現在推行的微笑服務,其實也需要一種發自內心的微笑
自我的超越
健康的身體,丰足的物質,事業上良好的文化修養
都是你(妳)一生難得的財富,所以不用去強求地獲得
懂得為人的中庸之道就無所不求無所求了
相反,唯一要做到的就是
超越自我
這也是由古自今而來的智者仁人推崇的哲理
知人者智,自知者明;勝人者有力,自勝者強
同樣是一個道理
1999-06-12
Apr 23, 2007
SQLite
About SQLite
|
- Transactions are atomic, consistent, isolated, and durable (ACID) even after system crashes and power failures.
- Zero-configuration - no setup or administration needed.
- Implements most of SQL92. (Features not supported)
- A complete database is stored in a single disk file.
- Database files can be freely shared between machines with different byte orders.
- Supports databases up to 2 tebibytes (241 bytes) in size.
- Strings and BLOBs up to 2 gibibytes (231 bytes) in size.
- Small code footprint: less than 250KiB fully configured or less than 150KiB with optional features omitted.
- Faster than popular client/server database engines for most common operations.
- Simple, easy to use API.
- TCL bindings included. Bindings for many other languages available separately.
- Well-commented source code with over 98% test coverage.
- Available as a single ANSI-C source-code file that you can easily drop into another project.
- Self-contained: no external dependencies.
- Sources are in the public domain. Use for any purpose.
The SQLite distribution comes with a standalone command-line access program (sqlite) that can be used to administer an SQLite database and which serves as an example of how to use the SQLite library.
GMail Drive shell extension
GMail Drive is a Shell Namespace Extension that creates a virtual filesystem around your Google Gmail account, allowing you to use Gmail as a storage medium.
GMail Drive creates a virtual filesystem on top of your Google Gmail account and enables you to save and retrieve files stored on your Gmail account directly from inside Windows Explorer. GMail Drive literally adds a new drive to your computer under the My Computer folder, where you can create new folders, copy and drag'n'drop files to.
Ever since Google started to offer users a Gmail e-mail account, which includes storage space of 2000 megabytes, you have had plenty of storage space but not a lot to fill it up with. With GMail Drive you can easily copy files to your Gmail account and retrieve them again.
When you create a new file using GMail Drive, it generates an e-mail and posts it to your account. The e-mail appears in your normal Inbox folder, and the file is attached as an e-mail attachment. GMail Drive periodically checks your mail account (using the Gmail search function) to see if new files have arrived and to rebuild the directory structures. But basically GMail Drive acts as any other hard-drive installed on your computer.
You can copy files to and from the GMail Drive folder simply by using drag'n'drop like you're used to with the normal Explorer folders.
Because the Gmail files will clutter up your Inbox folder, you may wish to create a filter in Gmail to automatically move the files (prefixed with the GMAILFS letters in the subject) to your archived mail folder.
Please note that GMail Drive is still an experimental tool. There's still a number of limitations of the file-system (such as total filename size must be less than 65 characters). Since the tool hooks up with the free Gmail Service provided by Google, changes in the Gmail system may break the tool's ability to function. I cannot guarantee that files stored in this manner will be accessible in the future.
| 17 Sep 2005 update: Google restructured the Gmail login procedures again and previous versions of the tool fail to log in. The new version also adds the ability to double-click to launch files and FileOpen dialog support. Please be aware that support for this tool may suspend at any time if Google decides to block its use. |
| 18 Apr 2006 update: A change in the Gmail.com login may cause a "Disc is full" error. Get the latest version to access files again. |
14 Aug 2006 note: If you see an "Unspecified potential security flaw" warning, it's because Microsoft Windows Update rolled out patch KB921398. Apparently you can avoid this error by adding the gmail.com and google.com domains to the Trusted Site list in Internet Explorer. |
Installation Requirements
Internet Explorer 5 or betterInstallation Guide
- Extract the ZIP file to a temporary folder.
- Run the Setup application.
Useful Links
Original idea by Richard JonesDownload Files
GMail Drive v1.0.10 - download site #1GMail Drive v1.0.10 - download site #2
notepad-plus
http://notepad-plus.sourceforge.net/uk/site.htm
Notepad++ is a free source code editor (and Notepad replacement), which supports several programming languages, running under the MS Windows environment.
This project, based on the Scintilla edit component (a very powerful editor component), written in C++ with pure win32 api and STL (that ensures the higher execution speed and smaller size of the program), is under the GPL Licence.
This project is mature. However, as you can see it's a one-man-project, there are still some bugs and missing features. If you have any question or suggestion about this project, please post them on the forums. As well, if you have any feature requests, you can always make the demand, but there’s no guarantee that I’ll implement it.
You're encouraged to translate Notepad++ (if it is not present in the Download Section) and/or to translate the Notepad++ official site into your native language.
I hope you enjoy Notepad++ as much as I enjoy coding it.
Here are the features of Notepad++ :
| Syntax Highlighting and Syntax Folding | |||
| | Supported languages : C, C++, Java, C#, XML, HTML, PHP, Javascript, RC resource file, makefile, ASCII art file (extension .nfo , screenshot1, screenshot2), doxygen, ini file, batch file, ASP, VB/VBS source files, SQL, Objective-C, CSS, Pascal, Perl, Python, Lua, TeX, TCL, Assembler, Ruby, Lisp, Scheme, Properties, Diff, Smalltalk, Postscript, VHDL, Ada, Caml, AutoIt, KiXtart, Matlab, Verilog, Haskell and InnoSetup. |
| WYSIWYG | |||
| | If you have a colour printer, print your source code (or whatever you want) in colour. |
| User Defined Syntax Highlighting | |||
| | It allows user to define his own language : not only the syntax highlighting keywords, but also the syntax folding keywords, comment keywords and the operators. ( screenshot1, screenshot2, screenshot3, screenshot4 ). |
| Auto-completion | |||
| | For most supported languages, user can make his/her own API list (or download the api files from dowload section). Once the api file is ready, type Ctrl+Space to launch this action (see screenshot). For more information about Auto-completion, please see Auto-completion HOWTO. |
| Multi-Document | |||
| | You can edit several documents at the same time. |
| Multi-View | |||
| | You have two views at same time. That means you can visualize (edit) 2 different documents at the same time (screenshot). You can visualize (edit) in the 2 views one document at 2 different positions as well. The modification of document in one view will carry out in another view (i.e. you modify the SAME document when you are in clone mode, see screenshot). |
| Regular Expression Search/Replace supported | |||
| | You can search and replace one string in the document by using the regular expression. |
| Full Drag ‘N' Drop supported | |||
| | You can open a document by drag & drop. You can also move your document from a position (or even a view) to another by drag & drop. |
| Dynamic position of Views | |||
| | The user can set the position of the views dynamically (only in 2 views mode : the splitter can be set in horizontal or in vertical), see screenshot. |
| File Status Auto-detection | |||
| | If you modify or delete a file which opened in Notepad++, you will be notified to update your document (reload the file or remove the file). |
| Zoom in and zoom out | |||
| | That's another fantastic function of Scintilla component. Just see screenshot. |
| Multi-Language environment supported | |||
| | The Chinese, Japanese, Korean, Arabic and Hebrew Windows environments are supported. See Notepad++ under the Chinese Windows , under the Arabic Windows and under the Hebrew Windows in action screenshot. |
| Bookmark | |||
| | User can just click on the bookmark margin (located right side of line number margin) or type Ctrl+F2 to toggle a book mark. To reach the bookmark, type just F2 (Next bookmark) or Shift+F2 (Previous bookmark). To clear all bookmarks, click the Menu Search->Clear All bookmarks. See screenshot. |
| Brace and Indent guideline Highlighting | |||
| | When the caret stay beside of one of those symbol { } [ ] ( ) , the symbol beside of caret and its symmetric opposite symbol will be highlighted, as well as the indent guideline (if any) in order to locate the block more easily. See screenshot1, screenshot2 . |
| Macro recording and playback | |||
| | You can save several macros and edit their keyboard shorcuts for the next use. |
nullmodem
| ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| I'm using nullmodem for my packet-radio station to connect a softmodem with the linux kernel using the KISS protocol. I'm even using nullmodem for a pure loopback based on the KISS protocol. So I can initiate connections to my own computer without going "on air". nullmodem can be seen as a generalization of Frederic Rible's (F1OAT) kissnetd that is optimized to transport KISS packets. If you know some other applications of this program, please let me know. Maybe it's possible to use nullmodem for a local SLIP loopback - but I've not tested this. | ||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
| For documentation look at the man page of nullmodem. | ||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
| nullmodem 0.0.4 - Wed, 3 Aug 2005 20:16:59 +0200
nullmodem 0.0.3 - Sat, 24 Jul 2004 18:31:44 +0200
nullmodem 0.0.2-1 - Sun, 10 Aug 2003 19:58:23 +0200
nullmodem 0.0.2 - Fri, 21 Mar 2003 08:35:01 +0100
nullmodem 0.0.1 - Wed, 6 Nov 2002 21:00:01 +0100
| ||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
I've prepared a debian package for this program. You can download this via | ||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
COM port to TCP redirector
====================================
COM port to TCP redirector (com2tcp)
====================================
INTRODUCTION
The COM port to TCP redirector is a Windows application and is a part
of the com0com project.
In conjunction with the Null-modem emulator (com0com) the com2tcp
enables to use a COM port based applications to communicate with the
TCP/IP based applications.
The homepage for com0com project is http://com0com.sourceforge.net/.
BUILDING
Start MSVC (v5 or v6) with com2tcp.dsw file.
Set Active Configuration to com2tcp - Win32 Release".
Build com2tcp.exe.
EXAMPLE OF USAGE
You have old TERM95.EXE application from the Norton Commander 5.0 for
MS-DOS and you'd like to use it to communicate with your.telnet.server
telnet server. You can do so this way:
1. With the com0com driver create a virtual COM port pair with
port names COM2 and CNCB0 (see com0com's ReadMe.txt for details).
2. Start the com2tcp.exe on CNCB0 port. For example:
com2tcp --telnet \\.\CNCB0 your.telnet.server telnet
3. Start the TERM95.EXE on COM2 port.
Usb Sniffer for Windows
[I just typed this doc directly into my browser - please forgive typos and other weird things]
SnoopyPro allows sniffing of USB devices on Win98/2K. It consists of an Win32 application which grabs the sniffed URBs and three drivers: the filter driver which actually captures the URBs and depending on the OS (Win98/2K) a 'bridge' driver which connects the application to the filter.
All the drivers are stored in the resource section of the main application. This allows for easy installation - just copy the main application somewhere, start it and unpack the drivers (under Win98 only the filter and the VxD bridge, under Win2K only the filter and the WDM bridge driver).
To start sniffing a USB device, you open the devices dialog by pressing F2 (on the first run, it should already be open). Select the device you want to sniff and right-click on it. Choose one of the following options:
- Install: Just add the filter to the stack (it's not actually loaded unless you plug/replug your device).
- Install & Restart: Add the filter and simulate a unplug/replug cycle.
So get the filter into the stack and it will start logging URBs. The old style filter would dump all the contents to the debug output (which was traditionally captured using DebugView.exe). This version allocates a big chunk of memory (1MB at the time of this writing) and serializes the URBs into this buffer.
Nothing shows up in the application? Well, most likely the bridge is not installed/started/connected yet. Right-click again in the devices dialog and select 'Install Service'. This should unpack the VxD bridge and CreateFile() on it (Win98) or unpack the WDM bridge, install it as a service, start the service and CreateFile() on it (Win2K). There's a status line on top of the list of USB devices. If it says "Snpys bridge is present and accessible..." you're ok. Not too far away from actual sniffing now...
Replug your favorite device. (or right-click and select 'Restart device'). A new document window should popup inside the main application. Hit F2 to hide the USB devices dialog and have a clear view of the new document window. The top contains a line indicating how many URBs have been captured so far (for speed reasons they're not displayed yet). Click on the 'Pause' button to temporarily pause the sniffing or hit the 'Stop' button to ... well stop the sniffing and start having a look at the URBs...
There they are... URBs are displayed one after to other. Click on the '+' at the beginning to expand an URB. Select several URBs (using SHIFT or CTRL and mouse and/or cursor - you know the drill from Explorer) and hit the '+'-key or '-'-key to expand/collapse. Hit Ctrl-'+' to adjust the widths of the columns. Click on the top checkbox to switch between absolute and relative timestamps (why? because you might be sniffing 2 devices at the same time and want to correlate URBs from one log to the other... with relative timestamps it's relative to the first URB sniffed. With absolute timestamps it's relative to the last reboot of your PC).
Oh, yeah - hit 'DEL' to delete URBs, try also 'Cut', 'Copy' and 'Paste' -> if you open a new fresh log ('File','Open') you can assemble the most interesting URBs into a separate log file this way. If you paste URBs into a text editor (EMail/NotePad/Whatever else), they actually show up in clear text. (Hint - it is important to copy *expanded* URBs to get an *expanded* text in a subsequent paste...)
What did I forget? Oh... right... you can also print a log (but please don't - save the forests!!!).
The 'Analyze Log' menu item tries to fill in some information which is not readily available at the time of capturing, but can be deduced by looking at the sequence of URBs offline. For example the endpoint address - JeanSeb's version of USBSnoopy did a lookup on every captured URB. SnoopyPro tries to find this info by examining the log.
That's about it. It should work as advertised here, but there are definitely major features missing and most likely some bugs (I hope not too many).
Give me your feedback here on SourceForge and please send me any modifications/enhancements you make to it. I'll be happy to integrate it (with proper credits). Code with 'braces-down' has priority...
happy sniffing
roland
Virtual VCR
| Virtual VCR |
| http://virtualvcr.sourceforge.net/ It has some unique options and features that make is a useful tool for all types of video capture tasks. News & Announcements Support Current Version: |
V4L2 Virtual Device (v4l2vd)
V4L2 Virtual Device (v4l2vd)
http://v4l2vd.sourceforge.net/Description
V4L2 Virtual Device is a video4linux2 driver providing one or multiple video pipes. It is used to route the output of a user space video source application to typical video “consuming” applications (players, encoders, PVRs) that normally get their content from video4linux2 devices. Through v4l2vd, applications such as mplayer, mythTV and many other can now access and render video files or real-time networked media sources. In addition to the v4l2vd driver, the v4l2vd Source application is provided with this project as an example of a raw video feed.
This project was developed based on the Video4Linux Loopback Device project by Jeroen Vreenken and Kenneth Lavrsen which we thank here for their very useful contribution:
We decided to launch this project mainly for three reasons:
-
Simplify our work: we decided to go straight to implementing v4l2 functionality without regards to backward compatibility with v4l1. Maintaining backward compatibility in V4L Loopback would probably have required a much more substantial effort.
-
We have seen recently many discussions in the open source community where the need for a tool such as v4l2vd was expressed. We feel it is better to release our code early than to try to reach backward compatibility with V4L Loopback (we actually don’t have the resources to do it at this point anyway).
-
The Video 4 Linux Loopback Device is no longer actively maintained
Contact
Jean-Michel Bouffard (jmbouffard at users dot sourceforge dot net) from the Communications Research Centre (CRC), Canada. V4L2 Virtual Device is developed at the CRC, and is released as Open Source Software under the GNU General Public License. For support requests about v4l2vd, please use the forum.
Video4Linux Loopback Device
Original author: JeroenVreeken
Uploaded to TWiki first time by KennethLavrsen
Introduction
The video4linux device is a driver that implements a video pipe using two video4linux devices
Jeroen Vreeken wrote this driver for debugging motion realtime, which worked very nice and he decided to make something usefull of it. You can use this driver for looking at motion in realtime or for feeding a webcam while still securing your room.
Note also that vloopback output can be used by several applications at the same time (see below)
Detailed Description
The video4linux device is no longer actively being maintained. But since there is still some demand for it and still some people that make small patches for it the new Motion maintainers decided to gather these patches in a new release. If you need support do not ask the current motion maintainers. Instead join the motion mailing list where there is a reasonable chance to find help.
The following applications supports piping a video feed to vloopback:
- invert (an example in the vloopback driver package itself)
- The example program dc1394_vloopback of libdc1394
- The IEEE1394 IIDC camera GUI 'Coriander'
- Motion
These applications that can read the output of vloopback:
- setv4l (Jeroen's program for changing the settings of a video device)
- vidcat (part of the w3cam package)
- camstream (a nice video viewer).
- Xawtv also works, but you might have to tell it the size e.g. 'xawtv -c /dev/videoN -geometry 176x144'.
- EffecTV An amazing real-time video effector.
- Motion (feeding a second motion process the output of the first gives neat effects)
How to use multiple webcam applications with vloopback
1) A simple example (all applications use the same resolution) Do "modproble vloopback" then "resize /dev/video0 /dev/video1 320x240 320x240". Now, you can run as many webcam applications as you want with input as /dev/video2 (however you might have to tell your application the picture size, see below).
Of course, you may think resizing the scale from 320x240 to the same size is silly. Yes, it is, you can edit the source of invert.c (it suffices to remove one sign) to write a program that simply sends the stream from /dev/video0 to /dev/video1 if you prefer.
2) A more complicated example (applications using different resolutions) Do "modprobe vloopback pipes=2". Then "resize /dev/video0 /dev/video1 640x480 640x480 & resize /dev/video2 /dev/video3 640x480 320x240". (Assuming that you have only one real video device at /dev/video0. You can check with dmesg).
Now, you can watch your webcam with camstream at 640x480 (choose the device called vloopback0 output in camstream's menu, which is /dev/video2), at the sime time you can record a video of your webcam stream at 320x240 by doing "ffmpeg -vd /dev/video4 -s 320x240 picture.mpeg", you can at the same time run a webcam http server by running "camsource" (after editting camsource.conf to choose /dev/video2 or /dev/video4 as v4l_input source).
N.B. You can't use camorama with vloopback, as far as I know, camorama looks for inputs from /dev/video0. You should also not open two "view"s in the same instance of camstream. However, opening multiple instances of camsource doesn't cause a problem.
Attached Files
Attached are the recent versions of the vloopback.
Kernel 2.6
- vloopback-1.0.tar.gz : New release with some more fixes and allow build a kernel module in debian way and fixes problems to compile in Suse. If you want to make it work with motion , use motion-3.2.6 or above. stable for kernel <= 2.6.17
- vloopback-1.1-rc1.tar.gz : New release candidate for new kernel stable version 2.6.19 NEW
Kernel 2.4
- vloopback-0.92-snap1.tar.gz: Snaphot release for testing (this is the last version ever to be released for kernel 2.4 and is the 0.91 version with a redhat kernel 2.4.20 fix)
- vloopback-0.91.tar.gz: Last official release for kernel 2.4. Does not build on 2.6 kernels
Installation
Note that version 1.0 is tested for kernel 2.6.8 and above . There are reports that it does not work well with older 2.6 kernels. Make sure you upgrade your kernel to 2.6.8+.
Just type make and then insmod vloopback.ko.
If you want more pipes use insmod vloopback pipes=N with N between 1 and 16.
If you want to create spare pipes use spares=N.
Type dmesg to see which video devices have been created as input and output.
For example: if you have a camera on /dev/video0 the input pipe will most likely be /dev/video1 and the output on /dev/video2.
e.g. if you want to watch an inverted image of the camera you would start invert with /dev/video0 as its input and /dev/video1 as its output.
Then start a viewing app (such as camstream or xawtv) with as input /dev/video2 and you can see yourself inverted.
Now you can load the module from anywhere with or modprobe.
Users Guide
See the video4linux loopback device API document for detailed information about the use.
FAQ
How to use effecttv with loopback ?
You have to load your webcam / capture card kernel module , i.ex :
modprobe pwc mbufs=3 size=vga fps=15
See dmesg output to know the video device used by your device :
pwc: Registered as /dev/video0
Load vloopback device ,
modprobe vloopack
see dmseg output ( same as above )
Loopback 0 registered, input: video1,output: video2
And run effect on this way : effectv -vloopback [input vloopback device] -device [real video device]:
effectv effectv -vloopback /dev/video1 -device /dev/video0
I got "video_init: double buffer capturing with mmap is not supported. Video initialization failed." when i try to use my webcam with quickcam module.
You need to load this kernel module with parameter compatible=2 :
modprobe quickcam compatible=2
Comments and Bug Reports
tcp2com
Documentation
Contents
Run in test modeRun as NT service
Copyright and license
Run in test mode
You have the possibility to run the software in test mode, from a command line interface.
The program runs under the current user's environment, with the following parameters :
- 115200 bauds
- No parity
- One stop bit
The command syntax is the one below :
tcp2com --test tcp/[port] com[com_port]where
port is the number of the TCP port and com_port is the number of the serial portIn the console, you should see the following data :

Run as NT service
tcp2com can be run as a Windows NT service, independently of any user account. Unless you change it, the service is configured to run with the SYSTEM account.
To install the service, type the following command :tcp2com --install tcp/[port] com[num]
where port is the number of the TCP port and num is the number of the serial port
In the services console, you should notice the newly installed service :
The service, when freshly installed, runs with the following parameters :
- 115200 bauds
- No parity
- One stop bit
If you wish to change them to fit your needs, use
regedit tool and go to :HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcp2com-NN\Parameters (where NN refers to your COM port number)You will come to the following screen :

Here are the insteresting keys you can manually modify :
- ComBaudRate : speed of COM port (default is 115200)
- ComParity : sets Com port parity (can be 0 or 1, default is 0)
- ComStopBits : sets Com stop bits (can be 0 or 1, default is 0)
- BindAddress : allows you to restrict TCP listening from a specific adress, for security (default is ANY of your ethernet interfaces - 0.0.0.0)
- Password : restricts service connection with a password (default is empty -> auto-login)
To remove a service, type the following command :
tcp2com --remove tcp2com-[num] where num refers to the installed tcp2com serviceCopyright and license
tcp2com - A network to serial port mapper
Copyright © 2004 Christophe Buguet and Gérald Villemure.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
.NET VNC Viewer
http://dotnetvnc.sourceforge.net/
.NET VNC Viewer
News
- Apr 24, 2005 - .NET VNC Viewer 1.0.1.16 has been released. This beta supports UltraVNC-style server-side scaling and single window mode, and it lets you choose whether to update the screen ASAP or in a batch. Please see the history section for other new features and bug fixes. Try it out. I almost forgot - this one has an icon.
- Mar 22, 2005 - I must say thanks to Ron Swensson for all the informative and insightful bug reports and feature requests submitted! Without Ron's help I couldn't possibly have implemented the Smartphone version and other neat features in .NET VNC Viewer. Thank you very much.
Introduction
.NET VNC Viewer is a VNC viewer written entirely in C#. It is binary compatible with Smartphones, Pocket PCs and Windows desktops (with .NET Compact Framework or .NET Framework). I write this mainly because other VNC viewers on Pocket PC do not do full screen and screen rotation.
In addition, I have the following in my mind when I write .NET VNC Viewer:
- To ensure source and binary compatibility on Smartphones, Pocket PCs and Windows desktops.
- To make sure that it can be built freely on Pocket PCs (Pocket C#) and Windows desktops (only .NET Framework SDK 1.1 needed and Visual Studio not required).
- To learn C# and .NET (Compact) Framework in its pure form. Avoid P/Invoke calls and try not to link to any other libraries except the Framework.
For more information please refer to the Features section and the Screenshots section. You may also go directly to the Download section to get a copy of .NET VNC Viewer.
Features
- Of course, basic VNC viewer functionalities.
- Full screen mode.
- Client-side scaling.
- Server-side scaling and single window mode.
- Screen rotation.
- Session history.
- Hi-Res support for VGA Pocket PCs and QVGA Smartphones.
- etc.
Screenshots
I am getting tired of updating the screenshots on all platforms, so I only have a few here. Please look at the old ones if you want some more.
On a Windows desktop | On a Pocket PC | On a Smartphone |
Download
Releases of .NET VNC Viewer can be downloaded from SourceForge at this page.
Requirements
It works on the following devices:
- It should work on all Windows desktops with .NET Framework 1.1 (or later). I only tested it on my workstation with Windows XP Professional, however.
- It should work on all Pocket PCs with .NET Compact Framework 1.0 (or later). I only tested it on my HP 4150 with Windows Mobile 2003 though.
- It should work on all Smartphones with .NET Compact Framework 1.0 (or later). I only tested it with an emulator.
- It should work on other Windows CE devices with .NET Compact Framework 1.0 installed. I haven't tested any.
It may or may not work on previous versions of .NET Framework.
Installation
Just copy the exe to a directory on your device and execute from there.
Usage
Most of the time it should be pretty straight forward, but there are some features that are not so obvious.
To exit full screen mode on a desktop, "tap-and-hold" your right mouse button. A context menu will appear that let you go back to window mode. To exit full screen mode on a Pocket PC, tap-and-hold on the touch screen. After the dot goes around the big circle once, release your stylus and the context menu will popup (if it goes around the big circle twice a right mouse click is sent to the server). To exit full screen mode on a Smartphone, "tap-and-hold" soft key 2.
To enter letters on a Smartphone, press "*" on your keypad. A textbox will show at the lower right corner and you can enter letters as well as the arrow keys, backspace, enter, etc. The textbox will dismiss itself automatically after idle for several seconds.
Support
Any comments and questions should be directed to the corresponding forum at this page.
Known Issues
- It crashes if executed from a share.
- There is a bug in UltraVNC. Don't mix server-side scaling with single window mode. (Try to do this with UltraVNC viewer and you will know what I mean)
- It does not work with UltraVNC 1.0.0 RC 19.5 to RC 20.4 due to a bug in UltraVNC. Please stay with RC 18 or upgrade to at least RC 20.5.
Comments on C# and .NET (Compact) Framework
- C# and its base library are excellent in terms of the features they provide and ease of programming. For example, threading classes and collection classes are easy to use and they work in pretty much the same way on Smartphones, Pocket PCs and Windows desktops. Many lines of code would have been needed if these classes did not exist.
- Performance is pretty good on Windows desktops. On Pocket PCs the performance difference between native and managed code is more apparent.
- Some very important features are still missing from .NET Compact Framework 1.0. E.g., clipboard support is missing, multi-media support is missing, and editable combo box control does not yet exist. Hopefully these features will be added in .NET Compact Framework 2.0.
History
1.0.1.16 (Apr 24, 2005)
- Server-side scaling and single window mode implemented.
- On a PPC or a Smartphone, now the viewer calls into the connection manager to initiate a network connection (e.g. GPRS) before connecting to the server. From now on the viewer is not P/Invoke-free anymore.
- Added an icon.
- Added an option for users to choose whether to update the screen ASAP or in a batch.
- Added a sample build script.
- Fixed a bug that would hang the viewer if the connection is terminated unexpectedly.
1.0.1.10 (Mar 22, 2005)
- Client-side scaling implemented.
- Fixed a problem with Smartphone key input mode which prevents the viewer from going back to mouse mode after exiting extended input mode.
- For Smartphones, the back soft key is now backspace even not in key input mode.
- Improved the code for painting.
- Made adjustments to thread priority to provide a more responsive UI.
- Added "Shift Down" and "Shift Up" to the "Keys" menu.
- For Smartphones, added an option to send the mouse location to the server when the cursor is idle.
- Fixed a bug on Smartphones that would cause the right mouse button to not properly function after exiting full screen mode.
1.0.1 (Feb 27, 2005)
- Smartphone support.
- Hi-Res support for VGA Pocket PCs and QVGA Smartphones.
- Better full screen support (remote desktop centered with black background).
- Better desktop support (intuitive right click handling).
- Workaround for a bug in .NET CF prior to SP3 that hangs the viewer upon exit.
- Workaround for a bug in .NET CF prior to SP3 that crashes the viewer when the server terminates the connection.
- Other cosmetic changes.
- Merged content of TODO.txt and HISTORY.txt into README.txt. README.txt was revised.
1.0.0 (Jan 19, 2005)
- Initial release.
TODOs
- Status reporting.
- ZRLE encoding.
- etc.
References
The official VNC site.
This is a variant of VNC on Windows. It supports many features not in the original VNC suite. Most of the code of .NET VNC Viewer is derived from UltraVNC's codebase.
Currently .NET VNC Viewer is hosted on SourceForge. For news and releases of .NET VNC Viewer please visit the project web at this page.
MicroEmulator
MicroEmulator

http://www.microemu.org/
MicroEmulator is a pure Java implementation of J2ME in J2SE. MicroEmulator is licensed under LGPL so it is possible to link and distribute commercial software with its libraries.
Key usage examples
- Application demonstration in web browser applet
- Webstart demonstration
- Faster development of application in Eclipse
- Using standard java profiling tools to tune your application
- Creation of unit tests for J2ME application that runs during build process
- Development support for platforms where no emulator is available.
Features
- Support for MIDP 2.0
- Generic Connection Framework
- Support for MMAPI (JSR 135)
- Support for Nokia APIs
- Support for Siemens APIs
- Skinnable and configurable interface
- Works with different graphics libraries; currently with Swing and SWT
- Platform independent: Windows, Linux, OSX
Support for JSRs in development environment using additional libraries
- Bluetooth APIs for Java (JSR 82) using avetana JSR-82 implementation or BlueCove on windows
- Location API for J2ME (JSR 179) using OpenLAPI openlapi.com
Skins
MicroEmulator comes with three differend Skins:
- Default 176x220 Full Screen and 176x176 Normal Canvas, Skin 226x471.
- Minimum 128x128 Full Screen and 128x96 Normal Canvas, Skin 157x285.
- Large 240x320 Full Screen and 240x266 Normal Canvas, Skin 292x618.
Requirements
- Java 2 SE 1.3+
Acknowledgements
- YourKit Java Profiler
Projects using MicroEmulator
Application demonstration in web browser applet
Your application should run without any changes inside applet.
* Keep it in mind that if your j2me application requires HTTP access the applet must be signed. By default the applet will only communicate with the host the applet came from (your website).
* Applet do not allow calls to System.getProperty();
Embedding applet into html page
MicroEmulator comes with three differend Skins:
* Default 176x220 Full Screen and 176x176 Normal Canvas, Skin 226x471.
* Minimum 128x128 Full Screen and 128x96 Normal Canvas, Skin 157x285. minimum.jar
* Large 240x320 Full Screen and 240x266 Normal Canvas, Skin 292x618. large.jar
Html fragment example for Default device:
width=226 height=471 archive="me-applet.jar,(MIDlet application jar)">
* To support Nokia UI nokiaui.jar should be included in the archive attribute.
* To support Siemens API siemensapi.jar should be included in the archive attribute.
There is additional parameter in the applet definition tag if you want to start the applet with device other than the default one:
* Minimum phone included in distribution is org/microemu/device/minimum/device.xml
* Minimum phone with mouse and color is org/microemu/device/minimum/device-color.xml
* Large phone is org/microemu/device/large/device.xml
Remember to include the new device jar into the applet archive tag
* minimum phone included in distribution is packaged inside minimum.jar
* large phone included in distribution is packaged inside large.jar
Example for SimpleDemo MIDlet, Nokia UI support and Minimum device:
width=157 height=285 archive="me-applet.jar,nokiaui.jar,minimum.jar,simpledemo.jar">
Example for SimpleDemo MIDlet and Minimum device with mouse and color:
width=157 height=285 archive="me-applet.jar,minimum.jar,simpledemo.jar">
Example for SimpleDemo MIDlet and Large Skin:
width=292 height=618 archive="me-applet.jar,large.jar,simpledemo.jar">
Nullsoft Scriptable Install System

http://nsis.sourceforge.net/
NSIS (Nullsoft Scriptable Install System) is a professional open source system to create Windows installers. It is designed to be as small and flexible as possible and is therefore very suitable for internet distribution.
Being a user's first experience with your product, a stable and reliable installer is an important component of succesful software. With NSIS you can create such installers that are capable of doing everything that is needed to setup your software.
NSIS is script-based and allows you to create the logic to handle even the most complex installation tasks. Many plug-ins and scripts are already available: you can create web installers, communicate with Windows and other software components, install or update shared components and more.
Features
From NSIS Wiki
NSIS can create Windows installers that are capable of installing, uninstalling, setting system settings, extracting files, etc. Because NSIS is based on script files, you can create both simple and advanced installers.
Small overhead size
NSIS is created to be small, fast and and efficient. While other installers often add hundreds of kilobytes or several megabytes to your installer data, a full-featured NSIS installer has an overhead of only 34 KB.
Compatible with all major Windows versions
You can create a single installer that is compatible with Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000, Windows XP, Windows Server 2003 and Windows Vista.
Unique compression methods
You can choose between three different integrated compression methods (ZLib, BZip2, LZMA). The new LZMA compression gives better results than any other common compression method. You don't have to use large self-extracting archive modules or other applications. The compression support is included in the 34 KB overhead.
Script based
Unlike other systems that can only generate installers based on a list of files and registry keys, NSIS has a powerful scripting language. This script language is designed for installers and has commands that help you to perform many installation tasks. You can easily add custom logic and handle different upgrades, version checks and more.
For standard installers or as a starting point for more complex ones, you can use one of the available script generation tools.
Multiple languages in one installer
One installer can support multiple interface languages. More than 40 translations are already included, but you can also create your own language files. RTL (right-to-left) languages such as Arabic and Hebrew are fully supported.
Many features and checks for the target system
The script language provides commands you can use on the target system, from simple features like folder creation and registry editing to text/binary file modification, modification of environment variables and system reboots. Using provided plug-ins, you can even use Windows API.
Custom dialogs and interfaces
You can create custom wizard pages to get user input or integrate configuration options. NSIS includes a classic and modern wizard interface, but it is even possible to create your own custom interface.
Plug-in system
NSIS can be extended with plug-ins that can communicate with the installer. They can be written in C, C++, Delphi or another language and can be used to perform installation tasks or extend the installer interface. You can use the plug-in with a single line of script code. Plug-ins can also be compressed like other installation data and will only be included when you are using the provided features.
Support for web installation, file patching
The NSIS distribution includes a set of plug-ins that allow you to download files from the internet, make internet connections, patch existing files and more.
Project integration, different releases and automatic builds
The NSIS compiler features a powerful preprocessor. This allows you to easily integrate multiple projects into a single installer or automatically generate installer builds. You can also generate different releases such as lite and full versions.
Easy and human readable file formats
The NSIS script format and the format used for interface dialogs are easy, documented and humanly readable, so you can edit your files with your favorite editor. This also makes automatic script generation possible.
Portable Compiler
The NSIS compiler can be compiled for POSIX platforms like Linux and *BSD. Generated installer will still run on Windows only, but this way they can be generated without Windows or WINE.
Bigger list of features
- Generates self-contained executable installers
- Support for ZLib, BZip2 and LZMA data compression (files can be compressed individually or together)
- Uninstall support (installer can generate an uninstaller)
- Customizable user interface (dialogs, fonts, backgrounds, icons, text, checkmarks, images etc.)
- Classic and Modern wizard interface
- Fully multilingual, support for multiple languages (including RTL langauges) in one installer. More than 40 translations are already available, but you can also create your own.
- Page system: You can add standard wizard pages or custom pages
- User selection of installation components, tree for component selection
- Multiple install configurations (usually Minimal, Typical, Full), and custom configuration
- Installer self-verification using a CRC32 checksum
- Small overhead over compressed data size (34 KB with default options)
- Ability to display a license agreement in text or RTF format
- Ability to detect destination directory from the registry
- Easy to use plug-in system (lots of plug-ins for creation of custom dialogs, internet connections, HTTP downloading, file patching, Win32 API calls, etc. are included)
- Installers can be as large as 2GB
- Optional silent mode for automated installations
- A preprocessor with support for defined symbols, macros, conditional compilation, standard predefines
- A lovely coding experience with elements of PHP and assembly (includes user variables, a stack, real flow control, etc.)
- Installers have their own VMs that let you write code that can support:
- File extraction (with configurable overwrite parameters)
- File/directory copying, renaming, deletion, searching
- Plug-in DLL calling
- DLL/ActiveX control registration/unregistration
- Executable execution (shell execute and wait options)
- Shortcut creation
- Registry key reading/setting/enumerating/deleting
- INI file reading/writing
- Generic text file reading/writing
- Powerful string and integer manipulation
- Window finding based on class name or title
- User interface manipulation (font/text setting)
- Window message sending
- User interaction with message boxes or custom pages
- Branching, comparisons, etc.
- Error checking
- Reboot support, including delete or rename on reboot
- Installer behavior commands (such as show/hide/wait/etc.)
- User functions in script
- Callback functions for user actions
- Completely free for any use. See License.
- More











