《宇宙与我》笔记之二

一、存在于人体中的主要的是电磁力(如我上面所说,实际上是对应我们的化学能),人们运动的时候就是电磁力与引力做斗争。

二、太阳由于质量大,而引力也太大,造成所有原都向中心塌缩,这种压力使太阳达到了很大的温度,高温使原子运动速度非常快,以致其动能可以超越电磁力的能量,使强子相互接触,从而引发核聚变。同时,这种强大的引力,也约束了太阳核聚变的能量。因而太阳在相对缓慢的进行核聚变。太阳的聚变能量,在太阳核心产生,经历一千万年才能上升到表面,光在太阳肚子里走的比蜗牛还慢(12:20,不是说光速是不变的吗)太阳产生至今日也才损失了万分之一的物质。

三、生物在海洋里消磨了三十多亿年的时光,大型生物的进化才5亿年。5亿4千万年前:寒武纪生物大爆炸(与氧气有关)。

 

四、目前人类还没有力法约束核聚变,对其使用只能是破坏性的。

五、太阳只有两次核聚变,九十亿年的氢聚变,十亿年的氦聚变。我们己经用完了五十亿年的氢聚变,两种聚变交换时,太阳体积会彭胀,吞掉地球,因此,我们还有四十亿年。

 

六、百亿年过后,氦燃烧完也,太阳的引力无法促成碳聚变,会变成与地球体积差不多,但重几十万倍的白矮星。

 

七、比太阳大八倍以上的恒星的死亡方式是爆炸,恒星越大,寿命越短。质量差三倍,则寿命差750倍。即:比太阳重三倍的恒星,其寿命只有一千三百万年。因而,大恒星中,更加不可能产生生命的进化。

八、大恒星是宇宙制造重元素的工厂。宇宙中恒星的极限是一百个太阳。比太阳大八倍的恒星可以一直聚变下去,不断产生更重的元素。

九、大恒星越在内部,温度越高,因而它的聚变是分层进行的,越向里,聚变的元素越重。聚变的元素越重,其产生的能量越少。当聚变到铁元素时,就不产生能量,不足以支撑压力,恒星就会塌缩,超新星爆炸。超新爆炸的强能量可以产生所有的聚变,也产生所有的得元素。地球上的金银都是超新星爆炸产生的。超新星爆炸在核心的铁元素压缩,具大的力将电子都压进了质子,质子变成了中子,无电磁力排排斥的中子组成的原子核相互紧密在挨在一起,从而形成中子星,其1立方厘米的质量可达十亿吨。光要呈抛物线状才能从它上逃脱。把一个几百亿公里的物体,压缩成三十公里的直径,中子星的磁场也同样受压缩,它可以把电子向高压水注一样喷射出去。

 

十、还有一些超新星爆炸的结果是黑洞。

十一、还有一些超新星爆炸后形成的是一个新的太阳系。

十二、小行星抓不住气体。不能为生命提供保护。

《宇宙与我》笔记之一

一、400多年前,人们开始通过望远镜了解宇宙:400年前哥白尼才让人们知道地球不是宇宙的中心。也就是说人们开 始真正了解宇宙才400年而己。

二、阳光在地球表面己经掠过了四十多亿年。

三、生命的本质就是把光能变成物质的新陈代谢。
按公子所说,有私,生息轮回者为生。大致意思不会着很多。注意,这里说的只是生命的意义,不是人生的意义。

四、太阳的直径相当于110个地球。表面温度六千度,与地球距离约一亿五千万公里。地球所得为太阳光五亿分之一。其质量相当于33万个地球,换成同等质量的煤,发出同样的光和热,只能烧几千年。而太阳烧了50亿年。

五、核成量成达到化学能量的两千万倍。

六、宇宙中最高效的核能是氢聚变成氦。即四个H原子,聚变成了一个He原子,此过程损失千分之七的物质,变成能量。一千克H原子发生聚变的能量,相当于4千吨石油,8千吨煤。在一节只能烧几分钟的树枝中含有的核能,足以把100W的灯泡点亮100万年。

七、强力:最强的力,存在于原子核中。核能就是靠它产生的。但它只在原子核半径范围内起作用。然而存在于原子核周围的电磁力,却一直阻止原子核互相接触。
怎样才能让强子互相接触呢?答案就是中子,中子是没有电的,可以不受电子力干扰。
弱力:可以使质子衰变成中子。发出射线。
电磁力:比强力弱一百多倍。
引力:比电磁力弱几万万亿倍。(原话是这样的,不是万万=亿吗?)

下面是我的理解:
引力:常规意义上的动能,势能,物体之间的。
电磁力:化学能。(不全是)
强力:核能。

使用stm32的SDIO方式控制SD卡遇到的问题

读了N天的数据手册,终于搞明白了个大概,拿来主义,先用官方的代码试一下,结果一试之下竟然不好用.我有两块板子,一块是花了160块大洋买的stm32 mini,另一块则是自己画的. 使用自己画的板子测试,能完整跑完全部测试代码,并不出错(美啊,看来我画板的技术还是不错的).但是用买来的板子的却不好用,采用4b方式读不到数据,使用1b方式可以读到.这是为什么捏?一个大大的问号出现在我脑袋的侧上方.

我突然发现我的小板,即买来的板子,卡座上有个引脚有点弯. 调过来,还是不行. 搞不懂了,卡座坏了吗?在实验室测了下,都通着呢,不像卡座有问题.

今天又在QQ群里问了下,小雷告诉我说是驱动问题,降低频率就好了,而且不会影响读写速度,修改方法:

sdcard.c中,

//#define SDIO_TRANSFER_CLK_DIV              ((u8)0x1) 
#define SDIO_TRANSFER_CLK_DIV              ((u8)0x0f) 

没有做测试,因为突然jlink驱动不好用了,这也是为什么我要写这篇文章.不想重启机器了(重启下就会好),因为快要到撤离的时间了.记下来明天做.

MicroChip GUI 在stm32上的移植(ILI9325 驱动器)

听同学讲微芯公司提供他们自己的GUI,就也试着移植了一下,情况比预料中的容易,只用一个下午就搞定了,中途还出去开了下班会.:-)

闲话休提,言归正传:

1. 代码的下载:

http://www.microchip.com/en_us/technology/graphics/

下载后的是一个自解压文件,全部解压了就好(过程中会提示你都要安装什么,我还以为它会给我安装软件呢,犹豫了好久,最装一些无用的软件了.)

所有的代码存在于:microchip/文件夹下.以下的讲述很多是基于这个文件夹的,或是基于他的两个子文件夹,Graphics 和Include,这两个文件夹内有关于GUI的所有代码.

 

2. 在你的工程文件夹里填加MicroChipGUI文件夹. 下面是我移植过程中记录的,写在相应目录里的ReadMe.txt中. 这可以帮助我记住一些东西. ReadMe.txt里提到的目录是基于它的父目录的,这里就是MicroChipGUI.

在这个文件夹下,要建立两个子文件夹:Graphics 和Include.

1. Make the two subdirectories according to the ReadMe.txt files respectively.

3.  Include 文件夹的建立过程,及要做的修改:

1. Copy this Include directory from Include directory in MicroChip.
2. Delete all subdirectories except Graphics.
3. Copy HardwareProfile.h and GraphicsConfig.h from MicroChip/Graphics/GDD/Default_Template.
4. Make a dummy GDD_GraphicsConfig.h within the directory.
5. Comment line 113 out in file Compiler.h
6. Insert into line 103 the following content:
      #elif (DISPLAY_CONTROLLER == ILI9325)
        #include "Graphics/drvILI9325.h"
7. Comment out line 64 and 65 in GenericTypeDefs.h and add behind it:
#define BOOL bool
#define BIT      FlagStatus

Add header file "stm32f10x_type.h"
   This is done to avoid conflict with stm32 firmware lib.
8. Comment out line 143 and 144 in Graphics/Primitive.h and rewrite it as :
        #define FLASH_BYTE  char
        #define FLASH_WORD  short
9. Comment and rewrite line 119 in the same file as:
    FLASH_   = 0,            // internal flash
10.Comment and rewrite other "FLASH" to "FLASH_" in Primitive.c, nominations are:
line 2274
line 2213
line 1972
line 1931
line 1853
line 1681
line 1515
and line 105
    procedure 8 through 10 are also for avoiding conflicts with stm32 fireware lib.
11. Comment and rewrite line 958 in Graphics/GOL.h
    void GOLInit(); ->void GOLInit(void);
    This is done for Armcc compiler’s need.
12. Add file Graphics/drvILI9325.h
13. Uncomment USE_BUTTON and USE_WINDOW in GraphicsConfig.h
14. Comment the following out at about line 810:
                if(GOLMsgCallback(translatedMsg, pCurrentObj, pMsg))
                    BtnMsgDefault(translatedMsg, (BUTTON *)pCurrentObj, pMsg);
                break;
and at about line 820:
//                GOLMsgCallback(translatedMsg, pCurrentObj, pMsg);

 

4. Graphics文件夹的建立过程,及要做的修改:

1. Copy the same directory from MicroChip.
2. Delete all other directories except Drivers.
3. Insert into line 101 in DisplayDriver.c
     #elif (DISPLAY_CONTROLLER == ILI9325)
        #include "Drivers/drvILI9325.c"
4. Add file Drivers/drvILI9325.c.
5. In GOL.c find(at about line 561):
    if(GOLDrawCallback())
        {
            // It’s last object jump to head
            pCurrentObj = _pGolObjects;

            #ifdef USE_DOUBLE_BUFFERING
            if(DisplayUpdated)
            {
                RequestDisplayUpdate();
                DisplayUpdated = 0;
                return(0);
            }
            #endif //USE_DOUBLE_BUFFERING
        }
Modify it as:
    if(0)
        {
            // It’s last object jump to head
            pCurrentObj = _pGolObjects;

            #ifdef USE_DOUBLE_BUFFERING
            if(DisplayUpdated)
            {
                RequestDisplayUpdate();
                DisplayUpdated = 0;
                return(0);
            }
            #endif //USE_DOUBLE_BUFFERING
        }
6. After you have done all the changes in this file and the ReadMe file in ../include, it’s time to try it out. Go to you main.c:
1) Include the header file:
    #include "Graphics\Graphics.h"
2) Declarations:
        WINDOW * wnd;
        BUTTON * btn;
        GOL_SCHEME *pScheme;
3) Action:
        pScheme = GOLCreateScheme();

        wnd=WndCreate(0,                // ID
                         0,0,GetMaxX(),GetMaxY(),   // whole screen dimension
                         WND_DRAW,                  // set state to draw all
                         NULL,             // icon
                         "Place Title Here.",       // text
                         pScheme);                     // use default GOL scheme
        WndDraw(wnd);

        btn=BtnCreate(1,20,64,50,118,0, BTN_DRAW, NULL, "ON", pScheme);
        BtnDraw(btn);
The code above will draw a window and a button on you screen. OK! My instruction is over, but more work remains to be done before you can use all functions this GUI can offer.

 

5. 以上就是最基础的移植需要的全部内容.其实就是我的两个ReadMe file的记录. 我的英语学得马马虎虎,如有歧义或难以理解之处欢迎与我联系.也欢迎大家在以后的探索过程中,与我讨论.

一个完整的工程代码可以在这里查看到.

另外,如果大家想下载一份的话,请使用svn工具:svn checkout http://stm32-codes.googlecode.com/svn/trunk/LCD_MicroChipGUI stm32-codes-read-only

如何在一个城市呆下来?

来到一个陌生的城市,地理不熟,语言不通,工作不顺,物价不平,居住不安,口味不适,朋友不多,心理孤独到孤寂的地步,你会开始念“归去来兮”。

你的内心就是一个城市。你不是住在一个陌生的城市里,你是住在你的心境里。城市只是你的内心折射:你柔软,城市就柔软;你刚硬,城市就刚硬;你开放,城市就丰富;你孤独,城市就封闭;你热情,城市就友善;你冷漠,城市就不近人情。

如何在一个城市呆下来,把心放下,像家一样?如何在别人的城市里迅速找到并建立自己的主场,享受城市的情谊和快乐,从“我能适应这个城市”,到“这个城市需要我”?钱不是问题——这里,有一份异乡生活和交际指南供你参考。

●买一份城市地图,然后走通它。开车、打车、坐车、骑车或徒步,都行。

●想快速熟悉本城地标,就报名参加本城一日游。

●把手机号换成本城的号码,印在名片上,并知会所有熟人。

●在本城的银行开一张实名存折,你在本城的财富积累从此起步。

●如果居住在这个城市的外来人口都被规定需要办暂住证,就尽早办吧。

●找一份工作。至少你从此有了一个收信地址。

●若暂时没找到工作,或想休息一阵,就去附近邮局租个专属于你的邮箱,这样也能有固定的通信地址。

●把本城明信片发往各地,然后收到天涯海角的明信片回复,落款是你的本城地址。

●在外旅行时,把旅行点的明信片寄给本城的朋友,也记得寄一张给自己的本城地址。

●安装一部固定电话,让你的家人和朋友在你手机关机时,也可以找到你。

●经常性地跟家人和故乡密友通电话,告知你在本城的近况和进步。

●上街去,找到对味的时装店、餐饮店、运动场所、休闲场所,并不时光顾帮衬;它们有机会成为你的精神能得到休息的“第三空间”。

●街拍城市,即使不能发表在报刊上,也能放在网上。

●在当地日报上发表文章,即使发在副刊版或读者来信版。

●结交闺蜜或死党。往往,你能倾听就行了。然后,找闺蜜逛街,找死党喝酒。

●参加同行的聚会。不是为了跳槽,而是让你在专业上不落伍。

●参加当地家庭教会的聚会。那里能遇上一些无私助人的人和生活哲学爱好者。

●与人合租房子时,把室友的朋友也变成你的朋友。

●在住处开一场派对,哪怕是睡衣派对。别怕事后收拾房间,图个热闹好玩。

●培养业余爱好,以爱好来交友,如上新东方的课,打羽毛球或高尔夫,唱K或唱地方戏。

●练熟臧天朔的《朋友》和周华健的《朋友》两首歌,在KTV点播时你能融入合唱。想家的时候可以唱《常回家看看》。

●把每次在不同场合跟人的合影照片,贴在墙上,一年下来,那面墙上全是你在这个城市的欢颜。

●去图书馆、英语角、相亲聚会、明星演唱会,找到跟你一样情趣和心境的异乡人,跟他们玩。

●去古玩市场、旧书摊、市民广场、街心花园、晨练场上结识中老年者,他们是睿智并有耐心的聊天对象,俨然是城市的化身,能告诉你关于城市的历史掌故。

●参加本城的义工组织,为残疾人、儿童和有需要的人义务服务。

●去本城的城市历史博物馆逛逛,那里摆着城市的过去;去本城的城市规划展览馆逛逛,那里摆着城市的未来;你像城市的主人一样,把城市的格局和面貌看看清楚。

●给市长热线打电话,反映你体会到的城市问题。在市长接待日,抽空去跟市长聊聊。

●报名参选你所居住小区的业主委员会,积极参与楼盘管理,维护自己和邻居们的权益。

●每次出差回来,给同事带手信,带可以在办公室分享的外地特产美食。

●有了新同事,别忘旧同事。

●学习本地方言,与当地人用哩语开玩笑。

●抽本城的烟,喝本城的白酒和啤酒。

●跟当地女孩拍拖。

●跟街坊、邻居、保安、房东、店员、公司前台……及所有为你服务的人打招呼,记得感谢与赞美。

●准备好红包,参加当地朋友的婚礼。

●建立几个圈层:同事圈,本地朋友圈,异性圈,爱好圈,专业圈,损友圈,街坊圈,消费圈。

●不建议参加老乡会,那里的确有同乡同语同味觉的温情,但容易蜕化为利益小团体,且不适宜你对本城的融入。

●开一个本城生活博客,写城市生活心得,你会获得意外的链接。

●在城市论坛发帖子,参加城市话题论战,为本城辩护,或写双城对比帖。

●嘴馋时,留意搜房网上小区BBS的FB活动召集。

●没节目时,上豆瓣的本城小组找节目,或发起节目引人参与。

●没事别呆在网吧里。2元/小时、5元/包夜的上网费虽然便宜,但把你一天的大好光阴以二三十块的价格寄存出去,真是不抵。

●借钱给朋友,江湖救急。别把他推给高利贷公司。

●帮朋友搬家,做点体力活。别把他推给搬家公司。

●为陌生人指路,赠他一面之交的温暖。

●请外地朋友吃饭,并为他们当导游。

●有条件的话,把你的父亲母亲也接来,哪怕只是小住一阵。他们能感受到你的成熟、担当和“地主之谊”。

●在本城买一份意外人身保险,受益人写你的父母。如果你万一有事,保险金也算游子如你对父母的孝心。

●抵押你在这个城市的未来,预支你对这个城市的信心,按揭买一套房,哪怕只有三四十平米,哪怕是二手房,也算是你在这个城市的永久性的立足之地。

●最后,在本城完成就业、发展、买房、定居、结婚、生子诸事宜。这样,你就不再是一时的过客,而是在你的第二故乡,成为了理所当然的市民。

【转】C#实现语音识别

用语音识别最麻烦的就是训练计算机适应你的口音。但是,如果用模板匹配的方式基本上普通话基本标准就可以正常识别。模板匹配的另一个好处就是精心设计的语法文件使得程序不会识别出无效的命令。例如你希望用嘴巴控制四轴上升下降那么程序就应该对你说的“左转”没有反应。
1.
首先添加语音识别库的引用:

在代码里添加命名空间:
using System.Speech.Recognition;
2.
无论操作系统是否系统启动语音识别程序,你都希望你的命令被你希望的程序而不是其他程序响应,例如你有一个命令叫“开始”,那么希望的结果是你的程序执行一个叫“开始”的过程而不是操作系统自动打开“开始菜单”。因此需要创建一个识别引擎的新实例而不是和系统共用一个。
创建一个System.Speech.Recognition.SpeechRecognitionEngine对象吧。
3.
来畅想下我们这个语音识别程序能做什么,简单点,我说“选择红色”那么窗体的背景就应该变红,“选择绿色”那么窗体的背景就应该变绿。恩,就这样,其他颜色视为无效命令程序无响应。
那么命令就是“选择(红色/绿色)”这样的结构,在这个句子中,“选择”是固定的,“红色”和“绿色”是可选择的,这几个词汇的组合就被称为语法,用System.Speech.Recognition.Grammar来表示。词汇的选择用System.Speech.Recognition.Choices来表示。
创建语法推荐用:System.Speech.Recognition.GrammarBuilder
=========================================================
GB.Append(“选择”);
GB.Append(new Choices(new string[] { “红色”, “绿色” }));
Grammar G = new Grammar(GB);
=========================================================
OK,上面的代码就创建了“选择(红色/绿色)”的语法。
在这条命令被识别后会触发System.Speech.Recognition.Grammar的SpeechRecognized事件。添加一个事件处理程序,在程序中处理这条命令吧(执行命令)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Speech.Recognition;
namespace 语音识别测试 {
public partial class Form1 : Form {
private SpeechRecognitionEngine SRE = new SpeechRecognitionEngine();
public Form1() {
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) {
SRE.SetInputToDefaultAudioDevice();???????? <=======默认的语音输入设备,你可以设定为去识别一个WAV文件。
GrammarBuilder GB = new GrammarBuilder();
GB.Append(“选择”);
GB.Append(new Choices(new string[] { “红色”, “绿色” }));
Grammar G = new Grammar(GB);
G.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(G_SpeechRecognized);
SRE.LoadGrammar(G);
SRE.RecognizeAsync(RecognizeMode.Multiple); <=======异步调用识别引擎,允许多次识别(否则程序只响应你的一句话)
}
void G_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) {
Text = e.Result.Text;
switch (e.Result.Text) {
case “选择红色”:
BackColor = Color.Red;
break;
case “选择绿色”:
BackColor = Color.Green;
break;
}
}
}
}

是不是很简单?当然语法文件可以复杂点,例如“设定[1/2/3/4]号电机输出[1%/2%/3%.........99%/100%]”

C#实现简单的语音合成

用C#实现语音合成是很容易的,这里指的只是语音合成系统的调用,而不是自己去做语音合成.

用C#实现调用系统API把一段文字用语音合成系统发出音来,需要一个插件,叫做DotNetSpeech.dll,一般来说你可能没有,网上搜吧,很多地方可以下载.把它放在一个文件夹内,并在这个文件夹内写一个cs源文件,内中代码如下:

using System;
using DotNetSpeech;
class Hello
{
	static void Main()
	{
		SpeechVoiceSpeakFlags spFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
		SpVoice voice = new SpVoice();
		voice.Speak("hello,world!", spFlags);
		voice.WaitUntilDone(10000);
	}
}

然后保存为a.cs,用csc.exe来编译,命令为csc /r:DotNetSpeech.dll a.cs? 这样就会在这个文件夹下生成一个a.exe文件,运行它就会调成TTS合成hello,world的发音.注意:确保你的电脑的确能发声,别告诉我不好用,结果是因为你没插音箱.

如果你的习惯使用VS来编程的,可能己经忘了怎么使用csc.exe.是这样用的:首先,你可以在你的.net framework安装目录下找到它.你可能安装了多个版本的.net framework,你只要用其中一个就行,我用的是2.0版的,它的目录是:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 把这个目录加入到环境变量Path中.就可以在命令行下用这个编译器了,当然你也可以不加,每次编译都把它的完整目录打出来.

怎么把它加入到环境变量里?

桌面->我的电脑(右键)->属性->高级->环境变量->系统变量->Path->编辑, 在其尾部追加分号+目录+分号,OK.

李敖其人

李敖其人

李敖,台湾著名作家、文化名人。祖籍吉林省扶余县,1935年生于哈尔滨,后迁居北京、上海等地。1949年举家赴台,定居台中。1954年考入台湾大学法律系,未满一年退学,随后考入台大历史系,毕业后升读台大历史研究所。1961年,李敖在《文星》杂志发表《老年人和棒子》一文,从此揭开了台湾上世纪60年代“中西文化论战”的序幕。

李敖著述甚丰,代表作有《传统下的独白》、《胡适评传》、《蒋介石研究》、《北京法源寺》等;近年出版《李敖回忆录》和《李敖大全集》等100多本著作,曾被西方传媒誉为“中国近代最杰出的评论家”。

以“黏人”方式表达爱国情怀

访问上海期间,李敖数次表示:“如果爱台湾就要承认台湾是中国的一部分。”在李敖的身上,有着浓浓的爱国情怀。在2005年“神州文化之旅”筹备阶段,有人询问其将在3所大学演讲何内容,李敖用寥寥数语即为众人释疑,他说:“在台湾,我是第一个公开支持‘一国两制’的人,我还骂过美国和日本,只要谨记此两点即可。”众人听后随即不再询问,表示已明白其情怀。

李敖的爱国方式与常人不同,他既不曾提振手臂高呼爱国口号,也没有站在伟人像前宣誓,而是以一种近似“黏人”的方式表达出来。他面对内地媒体时,数次理直气壮地说:“(中国是你们的)别忘了,中国也是我的。”当一个连续在台湾居住了60多年的老人,像是与他人抢东西似的,说“中国也是我的”时,他是在以一种戏谑的方式表达自己对祖国的感情。

在很多场合,他呼吁有远见的台湾人来大陆发展,共同分享祖国无可限量的前途。他不但这么说,也让自己的儿子这么做———放弃就读台湾大学,选择入读北京大学。这些行动也许可以表明,5年前他在天安门城楼上惊叹中国具有“大国气象”,是来自其内心深处的肺腑之言。

国人在很多场合均可感受到李敖拳拳的爱国心。令人印象最深的一次,是他第一次来内地访问时说过的一段话,他说:“1949年,在台湾从日本人的手里回到祖国怀抱4年后,我到了台湾;2005年,在香港从英国人手中回归8年后,我来到香港。这表示我的双腿从来没有离开过中国的土地,我要感谢我的双腿。”如果普通人这么说,可能会被视为怪物;然而,一位时隔60余年才首度返乡、从海峡对岸走过来的老人这么说,却令无数中国人为之动容。

闻书可知其出版年月

迄今为止,李敖共写了100多本书,可谓著作等身。中文在他的笔下常常让人有耳目一新之感。最为经典的是他那句自我推销的话:“五十年来和五百年内,中国人写白话文的前三名是李敖、李敖、李敖。嘴巴上骂我吹牛的人,心里都为我供了牌位。”

姑且不论此话所言是否公论,就其传播效果而言,凡是看过这句话的人,都会留下难忘的印象。在李敖看来,这就是文字应追求的效果。“我不说‘前三名都是李敖’,这种表达法不好;只有‘前三名是李敖、李敖、李敖’,才是好的中文,你看后仿佛被连推三下,明显感到我一掌打过来的‘掌风’。”李敖曾经在电视节目里解释自己这句“金字招牌语”。

类似惟妙惟肖的表达比比皆是。在2005年即将结束“神州文化之旅”时,为了表达对促成此次行程的凤凰卫视行政总裁刘长?(微博)乐的感谢之情,他题了两句诗,称:“凤凰长乐我亦乐,凤凰高飞我亦飞。”短短14个字,不但把“我”、“凤凰卫视”和“刘长乐”都包含在内,表达了自己的敬意,理清了三者的关系,还描写出一个展翅高飞的凤凰形象。

“台上三分钟,台下十年功。”李敖对中文炉火纯青的运用,背后有深厚的学养作支撑。李敖读书之多,世所公认。很多年前,香港的报纸评论说:“李敖很可能是50岁以下的当代中国人之中,读书最多而又最有文采的人。”这一点连台湾著名学者、李敖眼中的“敌人”徐复观也承认。李敖曾在《要把金针度与人》一文中写道:“记得19年前,我与徐复观对簿公堂,两人一边打官司一边喝咖啡,谈得非常开心。徐复观心血来潮,说了一段真心话,他说:‘你李先生真是怪人,你念古书,念得比我们还多还好,你却主张全盘西化!如果你来宣传中国文化,成绩一定比我们都好!’徐复观说得没有错……最大的原因是我真正会看古书。”

在电视节目里,他说:“一般学者读的书只要有我的十分之一,就会成为书虫,中了书毒……我对古书具有化腐朽为神奇的本领。”虽然这又是一句略带吹嘘的话,但是没有人质疑它的真实性,只要参观过李敖书房的人,无不被其丰富的藏书和卷册留下深刻印象。其女李文有一次透露,父亲有一个看家本领,只要闻一下某本古书,即可知道该书的出版年份,由哪个出版社出版,就连出版了上百年的书籍也不例外。

李敖曾以一己之力,独立担任《文星》杂志的主笔。该杂志继《自由中国》之后,一度在台湾风行十年。此外,他撰写了多部著作,其作品全部汇编入《李敖大全集》,共80册(内地目前出版了前40册)。“我在半夜写文章,常常一口气写到天亮。有时想喝水,却发现嘴巴张不开,由于连续数小时紧闭嘴巴写作,上下嘴唇已经黏合在一起。”其用功程度由此可见。

拿一副烂牌也能赢

任何一位传奇性人物,都有属于自己的一套人生哲学,李敖也不例外。迄今为止,甚少有人总结出李氏人生哲学,李敖本人也未曾公开作出总结。笔者认为,两个词语足可将其概括,分别是“因祸而为福”和“有为主义”,它们是李敖身上最鲜明的“标签”。

“因祸而为福”本是司马迁在《史记》中对管仲的评价,《史记·管晏列传》称:“其(管仲)为政也,善因祸而为福,转败而为功。”后来李敖常常在电视节目中引用,并对管仲推崇备至。在他看来,“人生的真义不在于拿一副好牌,而是拿一副烂牌也能赢”。所谓“拿一副烂牌也能赢”,就是“因祸而为福,转败而为功”的另一种说法。李敖常常提起某位好朋友说过的一句话,大意是说,如果跌倒了,不要马上爬起来,应顺势看看地上四周是否有东西可捡。此处如果将跌倒比作祸,那么捡到东西就是福,从祸事中寻找福气的线索,并趁机将形势扭转过来,是李敖一直信仰的人生哲学。就是这种人生哲学,使李敖虽历经两次牢狱之灾,却未曾消极倦怠,依旧生龙活虎、愈老弥坚。

李敖的很多言论都可视作上述处世哲学的体现。例如,他在学生时代由于家境穷困,没有机会出国留学,后来因台湾当局限制,亦未能出国见世面。在一般人看来,这是令人遗憾的事情,尤其与同层面的人相比,是一种所谓的劣势。然而,李敖在劣势中发现了自己的优势所在。他说:“没有一个人比我更了解台湾,因为我在这个小岛连续住了60多年,从未离开半步。其他人或者住的时间没有我长,或者中途奔赴他国,只有我一个人是例外。”在这种设定下,他的劣势倏忽转为优势,明明是从未出国见世面,却被当做最了解台湾的凭据。

他自身传奇般的经历,本身就是这种人生哲学的最佳注脚。从一个惨绿少年,到两度入狱的政治犯,再到台湾地区领导人的候选人,晚年还成为备受大陆同胞热爱和关注的人物,他大半辈子的人生经历就是在诠释着“因祸而为福,转败而为功”。

之所以能达到这种效果,主要得益于他的另一种处世哲学,即“有为主义”。他相信“一件事情,做了和没做,得到的结果是不一样的”。因此,在遇到困难局面的时候,不应只是消极叹气。在北京大学的讲坛上,他说:“拍桌子、摔板凳、整日唉声叹气,这都是一些不正确的情绪。”明知某些事情做了不会有效果,但还是要勉力而为,因为“十年二十年后,在你意想不到的时候,在你意想不到的地方,它会生根发叶开花结果。”这是一种精明、长远的眼光。

5年前,李敖回到阔别60载的北京新鲜胡同小学,面对着自己的小学弟小学妹,他在自己曾待过的教室的黑板上写下了8个字:“行者常至,为者常成。”(引自《晏子春秋》)他向那些充满稚气的孩子们解释说:“一件事情,只要去做,它常常能成功。不一定成功,但常常能成功。”在他看来,所谓成功,不一定是即时的、马上体现的、百分之百的圆满,失败也是成功不可或缺的组成部分。“如果一件事情注定要失败10次才能做成,那么,现在失败一次就是成功了十分之一。”这就是其“有为主义”的思想根源,相信任何事情“做了和不做不一样”,即使身处逆境,也要积极有为。70多年来,李敖就是这样一路走过来的。

重视金钱力量,爱情唯美理性

现实中的李敖,最吸引人的,当属其对金钱和女人的态度。

可能是由于经历过家境由富足而衰败,他对金钱有着清醒的认识。他常常引用美国富兰克林那句话阐述金钱对知识分子的重要意义,称:“两个口袋空空的人,腰杆挺不直。”在他看来,没有金钱上的独立,就不会带来精神自由和人格独立,“知识分子要想有独立人格,必须保证自己的胃不被他人控制。”

李敖曾开玩笑地说:“在台湾,我自己既当马克思,又当恩格斯。”意思是既像马克思那样勤奋著书,又像恩格斯那样善于经营赚钱。他不但鼓励文化人“有钱”,还鼓励其“有权有势”。在香港接受媒体采访时,他说:“请不要忘记,我们知识分子也是有权有势的人。只是我们的权势不建立在刀光剑影上,也不建立在金光闪闪上,它建立在人类的良知上面。”此话系胡适当年所说,后被李敖引为己用。

李敖和女人的关系常常牵扯不清,也常为人所诟病。实际上,他仅仅与台湾知名影星胡茵梦有过一段三个月短暂婚姻,之后便与现任太太王小屯相伴至今。由于其性喜玩笑,且创作过《上山·上山·爱》之类的情色小说,常让外人误会他风流倜傥。实际上,他生命中最重要的两场情事,他都是被动接受结果的人。

第一场是与某位即将谈婚论嫁的女友,因为自己入狱,女朋友被好朋友带走,他只好无奈在狱中接受这个结果。他曾在回忆录中感叹:“入狱以后,朋友背叛你,女朋友也跟着跑了……所以像我这个年纪的人,对人性有某种程度的悲观。”第二场是与胡茵梦,也是女方先提出离婚,他接受结果。直到现在,李敖与现任太太王小屯一直保持着完整的婚姻。

很多人听过李敖那句话,“50岁以前,看到漂亮女人就马上去追”,但是,此言不能当做李敖四处留情的证据,这不过是他惯有的玩笑,就好比他说怕坐飞机,一旦飞机出事就紧抱着空姐一样,都是为了逗人一笑而已。

事实上,李敖在感情上是个懂得拒绝的人。李敖与台湾政治人物施明德有过一段著名的对话。施明德曾说自己对女性的态度是“三不原则”———不拒绝、不主动、不负责。李敖调侃道:“不拒绝,丑女就会爬到你身上;不主动,美女不会来找你;不负责,现在DNA检测这么方便,你能逃得掉吗?”虽是玩笑,也可见李敖对爱情自有自己一套看法和做法。

李敖经典语录

●李敖其文五百年不朽,其人一千年不朽。一千年后,世界末日,什么都朽了。

●有人以为现代文明取消了牛马,代之以汽车。殊不知现代人要先做牛马,才能坐上汽车。

●铁杵能磨成针,但木杵只能磨成牙签。材料不对,再努力也没用。

●人间的关系只是三种:一、他跟你骂我;二、你跟我骂他;三、我跟他骂你。

●读万卷书行万里路,不如读两万卷书行零里路。

●我从不怕女人不爱我。她不爱我,我就加倍爱自己。

●“三个臭皮匠,胜过诸葛亮。”在皮革业和皮鞋店中,这是真理。

●上帝给你两只手的意思是:报仇不能靠他,你要亲自动手。

ubuntu10.04误改分辨率后无法进图形界面为彩条的解决方法

由于误改了ubuntu的分辨率,再进ubuntu时全是彩条,不能正常显示。网上搜了好久也没找到全适的解决办法。

最终自己摸索出一个办法。

首先,网上讲的xorg.conf文件的方法是行不通的。因为10.04版没有那个文件。

还有一个用xrandr命令的,不过也没好用。

用rescue模式进入后不知为什么改不了分辨率。

最后我是这样弄好的:

正常启动ubuntu,登陆界面显示是正常的,只不过登录后会显示混乱。

在登陆界面,点击你的用户名,然后在输入密码登陆前,看屏的最下面右侧,可以设置登陆目标,默认是gnome,但是下拉菜单里有一个xsterm,这个是一个图形化的终端。好,你们登陆到这个终端,这会在登陆界面打开一个终端,在这里我们可以运行程序,只要我们运行到分辨率的配置程序就可以了,呵呵,试了一会儿我就找到了。为:gnome-display-properties,运行这个程序,就可以打开一个ubuntu下修改分辨率的奇丑无比版图形程序,与你平时用的结构是一样的,在这里重新修改后exit,然后登陆到gnome就可以了。

Hope this will be helpful to someone (including future me)!

SD卡的鉴定模式

SD卡使用中要经历两种模式,第一个是SD卡鉴定模式,另一个是卡读写模式.

在第一种模式中,主机获得卡的类型、操作电压范围等信息,判断主机与卡能否进行正常的通信。并为卡设定一个相对的地址,以在读写时区分不同的卡。

这个过程(卡鉴定)分为两个阶段:卡复位和卡鉴定

一、卡复位

SD卡复位有两种方法:

  1. CMD0(GO_IDLE_STATE),对MMC 、SD卡有效.
  2. CMD52(IO_RW_DIRECT), 对SDIO卡有效.

二、明确卡操作电压范围 (卡的可操作电压范围存于卡的OCR寄存器,即Operation Conditions Register)

  1. 主机发送主机的电压范围窗(命令的参数里面),卡自我验证,不符合这一范围的退出.
  2. 主机不发送电压范围窗(参数为空),卡应答自己的电压范围,交互式确定最终使用哪一个范围,不在此范围的退出.
  3. 验证电压范围的命令:
    1. CMD1: (SEND_OP_COND)
    2. ACMD41: (SEND_APP_OP_COND) 对SD卡有效.
    3. CMD5: (IO_SEND_OP_COND) 对SDIO卡有效.
  4. 卡签定码(CID)和卡针对性数据存于payload memory.

卡签定的过程 (MMC与SD卡有不同):

一、 MMC卡

  1. ?
    1. 开始于时钟频率Fod.
    2. SDIO_CMD open drain
    3. 允许多卡并行操作

MMC卡的鉴定步骤:

1. 激法总线

2. 广播CMD1 (SEND_OP_COND)

应答为各卡的操作条件寄存器(OCR)的线与.

不兼容的卡自动退出

3. 广播CMD2 (ALL_SEND_CID)

所有的卡都发出自己的CID,在总线上仲裁,最终只有一个卡可以完整地发完自己的CID.

4. 寻址发送CMD3(SET_RELATIVE_ADDR)

得到自己的相对地址的卡进入standby mode,然后不响应以后的卡鉴定命令.并且其输出改变为推挽方式(Push-Pull).

5. 重复3~4,直到超时.

二、 SD卡

SD卡与MMC不同,初始卡的输出即为推挽方式.

SD卡的鉴定步骤:

  1. 激活总线
  2. 广播ACMD41 (SD_APP_OP_COND)
  3. 广播CMD2 (ALL_SEND_CID)
  4. 寻址发送CMD3(SET_RELATIVE_ADDR).

三、 SDIO卡

  1. 激活总线
  2. 广播CMD5 (IO_SEND_OP_COND)
  3. 寻址CMD3 (SET_RELATIVE_ADDR)

以上是stm32手册中讲的大意,但是实际应用中似乎不是这么用的.看了一些代码,里面用的都是cmd8 cmd55等等.