??xml version="1.0" encoding="utf-8" standalone="yes"?> interface TShowPicture = class(TThread) TXPImage = class(TComponent) //Property showPic:TShowPicture Read FshowPic; implementation uses { TXPImage } constructor TXPImage.Create(AOwner: TComponent); destructor TXPImage.Destroy; procedure TXPImage.SetActive(Value: Boolean); procedure TXPImage.SetImageList(Value: TImageList); procedure TXPImage.SetInterval(Value: Integer); procedure TXPImage.SetImage(Value: TCutline); procedure TXPImage.Start; procedure TXPImage.Stop; {procedure TXPImage.Continue; procedure TXPImage.Pause; { TShowPicture } constructor TShowPicture.Create(Aowner: TXPImage); procedure TShowPicture.Execute; // nTickCount := GetTickCount; procedure TShowPicture.SetPicture; end; end.
:: (tng) AuthorQpengyi (tng) (tng) (tng) Email:pengyi.yi@126.com (tng) (tng) (tng) ::
:: ::
:: Unit : UnitImagePlay ::
:: ::
:: Developer Team : Mdcl DevTeam ::
:: $Id: UnitImagePlay.pas,v 1.13 2006/07/13 08:22:24 Exp $ ::
:: ::
:: Created Date : 2005-12-8 ::
:: Last Modified: $Date: 2006/07/13 08:22:24 $ ::
:: Last Modifier: $Author:pengyi $ ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: }
unit UnitImagePlay;
uses Messages, Windows, SysUtils, Classes, CutlineU,
Controls, Forms, ExtCtrls, Graphics, StdCtrls, Dialogs;
type
TXPImage = class;
private
Fidx: integer; {当时昄的数}
//I:integer;
FItem: TXPImage;
protected
procedure Execute; override;
public
procedure SetPicture;
constructor Create(Aowner: TXPImage);
end;
private
FActive: Boolean; //当前是否?yn)L
FInterval: Integer;
//FTimer :TTimer;
FImgbmp: TBitmap;
//FImage: TImage;
FImage: TCutline;
FImageList: TImageList;
FshowPic: TShowPicture;
procedure SetActive(Value: Boolean); virtual;
procedure SetInterval(Value: Integer);
procedure SetImageList(Value: TImageList);
procedure SetImage(Value: TCutline);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Start;
// Procedure Pause;
//Procedure Continue;
procedure Stop;
property Active: Boolean read FActive write SetActive;
property Interval: Integer read FInterval write SetInterval;
property Imgbmp: TBitmap read FImgbmp write FImgbmp;
property ImageList: TImageList read FImageList write SetImageList;
//Property Image:TImage Read FImage Write SetImage;
property Image: TCutline read FImage write SetImage;
end;
CommonU, DbugIntf;
begin
inherited;
FInterval := 800;
FImgbmp := TBitmap.Create;
//FImage := TCutline.Create(AOwner);
//FImageList := TImageList.Create(AOwner);
//FTimer := TTimer.Create(AOwner);
//FImage := TImage.Create(AOwner);
end;
begin
if Assigned(FImgbmp) then
FImgbmp.Free;
//FTimer.Free;
//FImage.Free;
//FImageList.Free;
inherited;
end;
begin
FActive := Value;
if (FshowPic <> nil) and Value then
FshowPic := TShowPicture.Create(Self)
else
FshowPic.Terminate;
end;
begin
FImageList := Value;
end;
begin
FInterval := value;
end;
begin
FImage := Value;
end;
begin
FActive := true;
//创徏U程
FshowPic := TShowPicture.Create(Self);
//FshowPic.Resume;
end;
begin
//FActive:= false;
if FshowPic <> nil then
begin
FshowPic.Terminate;
FshowPic := nil;
end;
end;
begin
IF FshowPic<> nil then
begin
FActive:= true;
FshowPic.Resume;
end;
end;
begin
IF FshowPic<> nil then
FActive:= false;
end;}
begin
inherited Create(false);
FItem := Aowner;
Fidx := 0;
FreeOnTerminate := true;
end;
//var
// nTickCount: Cardinal;
begin
inherited;
while not Terminated do
begin
if FItem.Active then
begin
//Application.ProcessMessages;
synchronize(SetPicture); {注意此处}
Fidx := Fidx + 1;
if Fidx >= FItem.FImageList.Count then
Fidx := 0;
if terminated then
exit;
//Item.;
Sleep(FItem.FInterval);
// while FItem.Active and (GetTickCount - nTickCount < FItem.FInterval) do
// Application.ProcessMessages;
end
else
begin
Suspend;
end;
end;
end;
var
sMsg: string;
begin
//SendMethodEnter(Format('?s?播放动画中的讄囄', [FItem.Image.Caption]));
if FItem.Imgbmp <> nil then
begin
try
//SendDebug('开始从 Imagelist 中获取图?);
FItem.FImageList.GetBitmap(Fidx, FItem.Imgbmp);
//SendDebug('完成?Imagelist 中获取图?);
//FItem.FImageList.GetBitmap(Fidx,FItem.FImage.Picture.Bitmap);
//SendDebug('开始从把图片给 Cutline 囄');
FItem.Image.SetImage(FItem.Imgbmp);
//SendDebug('完成从把囄l?Cutline 囄');
//SendDebug('开始刷?Cutline');
//FItem.FImage.Refresh;
//SendDebug('完成h Cutline');
application.ProcessMessages;
except
on E: Exception do
begin
sMsg := Format('错误位置Q[%s] c:(x)[%s] 名称Q[%s] 错误c:(x)[%s] 错误信息Q[%s]',
['播放动画' ,ClassName, FItem.Image.Caption, E.ClassName, E.Message]);
SendDebugEx(sMsg, mtError);
WriteLog(sMsg);
end;
end;
end;
//SendMethodExit(Format('?s?播放动画中的讄囄', [FItem.Image.Caption]));
//SendSeparator;
]]>
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) Beth
Q?/span>
bethz@263.net
Q?/span>
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (
转蝲h明作者,否则保留q究的权?/span>
)
(tng) (tng) (tng)
记得我一个老师说过
“English is a friend that never betrays you.?/span>
Q既然如此,那么大家何不交这么一个朋友呢。下面我讲一讲自己有兌语的学习(fn)体会(x)Q多是个人的l验之谈Q不一定就正确Q欢q切?/span>
(tng) (tng) (tng)
现在的时代,要学的东西太多,在时间有限的情况下,讲究一点实用主义没有坏处。所以就p学习(fn)而言Q也不妨有的攄。英语学?fn)的目的不同Q作法的侧重点也有差异。下面我单分ZcL谈:(x)
1
。应试型?/span>
2
。应用提高型?/span>
一Q?/span>
(tng)
应试?/span>
(tng) (tng) (tng)
q种情况往往是被动的学习(fn)Q而且旉上受到限Ӟ多见于学校的{考试与社?x)上U种名目的资D试。因Z要是应付考试Q甚臌完拉倒,所以更有必要讲I一Ҏ(gu)谓的
?/span>
技?/span>
?/span>
Q免得占用太多的旉?/span>
每种名目考试要求的层ơ不同,出题的风g不同。所以ؓ(f)在最短的旉内取得最好的效果Q不妨首先在q两个方面分析一下。多数考试都有多有大纲或指gcȝ书籍Q这些书多数q是发v考试的单位所著,q些书上面额往往写得很清楚:(x)词汇量要求达到多?/span>
(
比如四?/span>
5000~6000,
六
6000~8000
Q考个四非要?/span>
10000
词未免跟自己q不?/span>
)
Q有的甚臌附一个词汇表Q题型都有哪几类Q听力、阅诅R还有语法占的比例都有多大,隑ֺ和速度要求怎样Q多数还都有考试样题?sh)参考。做上一两套Q稍微分析一下就能得出来的。比如国产的考试很注重语法和阅读。而国外的考试则更注重听力和读写,即有语法题?sh)出得非常简单。实在没有这U经典资料,也往往?/span>
?/span>
众h拾柴火焰?/span>
?/span>
性质的东西可寻,?/span>
?/span>
热心(j)
?/span>
的过来h写的l验?j)得Q几乎各个方面的都有Q比如阅ȝ体裁、题材、出题模式分析等{)(j)Q甚x(chng)供的W一手考试资料Q如
GT
机经Q,q些也很用的。虽然这本n反映?jin)一U不合理的现象,但不妨入乡随俗嘛。这斚w׃多说?jin)?/span>
二.应用提高?/span>
(tng) (tng) (tng)
q种情况多是Z(jin)提高日常交往p能力或者某个专业领域的p应用能力。往往个h的学?fn)主动性更Z些,旉的随意性也较强。所以可以更好的作个规划Q讲I一点@序渐q的U学Ҏ(gu)甚至味性?/span>
首先要说得一点:(x)学好一门语a的法宝永q都?/span>
?/span>
使用
?/span>
二字。但作ؓ(f)二外甚至三外的学者往往恰恰~Zq样一个环境,也即~Z语境。好在现在的C会(x)条gQ有?jin)录韛_像技术的帮助Q借助于随w听、电(sh)脑电(sh)视等Q还是较Ҏ(gu)p创造一个英语语境的Q不一定非得到说英语的国家厅R?/span>
(tng) (tng) (tng)
下面首先按听、说、读Q词汇)(j)、写四个斚w谈一谈,然后介绍一下学?fn)资料选曲斚w的内容,读者可以各取所需?/span>
1
Q?/span>
(tng)
?/span>
(tng) (tng) (tng)
听是听、说、读、写四项中最Ҏ(gu)的一个了(jin)。没什么捷径,多听Q能一?j)一意的l习(fn)更好Q但也不一定非得痛苦的固定在板凳上Q这斚w有一些比较轻松有的方式。听英文歌就是一个很好的途径。找些经典英文歌Ԍ什?/span>
?/span>
卡萨布兰?/span>
?/span>
Q?/span>
“Wind flower?/span>
之类的,旋律优美又耐听。开始可以随意的一遍遍的听Q听得比较熟?jin),q可以把歌词打出来,歌词对照着Q理解一下意思,慢慢的,你会(x)发现掌握?jin)很多常见的发音Q而且印象深,q对口语也有帮助的。除?jin)歌Ԍq可以找一些情景英语的D子Q走遍美国就不错Q口语说得很自然畅Q?/span>
toefl
听力听v来也服的Q,不像国的那么呆板可恨。没事就放一放,实在?ch)?jin)Q该q什么干什么(比如打扫卫生甚至看小_(d)(j)Q放着它当背景音乐好了(jin)Q潜U默化,一h效果的(能对照一下原文效果更好。)(j)。小孩子学语a不就是这L(fng)嘛,它们也没有非怸注刻意的学,听多?jin),也就知道是怎么回事?jin)。还可以找些味性强的英文片看看比如英文大片Q带字幕的)(j)、或《六》之cȝ肥皂剧。娱乐的同时得到提高Q何乐不为?MQ不采用何U方式,但只要磨x(chng)够多Q开始可能还?sh)?x)不到Q慢慢就有语感啦。对?jin),q有Q选材的时候可以先选听速度慢些的,不然不懂的比例太多,?x)容易有厌?ch)情A。(比如开始可以听
VoA English special(
国之音q播中的慢速英?/span>
)
Q到后来可以听听
VoA
Q正常语速)(j)?/span>
BBC
Q英国广播)(j)之类的。只是用攉Z太好ӞqL噪音Q网上倒有一些链接,q能凑合Q?/span>
2
Q?/span>
?/span>
(tng) (tng) (tng)
l习(fn)口语Q就不像听力那泛泛也可以?jin)。这个比较忌讛_杂。否则只是变相的l了(jin)听力而已。最好选一个经怺的教材(?/span>
900
句之cȝQ走遍美国也不错Q?/span>
TSE
的选题?sh)不错?j)Q有针对性地、反复的l练?fn)常用场景的惯用句式Q如找h的,问\的等{这P直到把常用的句式掌握U熟。说得容易,做v来真需要克服一定的躁?j)理呢,我做得就很不好。常用句式掌握了(jin)Q可再在此基上扩展,学一些特定情景的惯用对话Q什么办公室的、商务的{等。更高的层次是俚语、谚语、流行用语了(jin)Q个些是锦上添花的东ѝ?/span>
(tng) (tng) (tng)
另外l习(fn)口语Q一定要脸皮够厚Q敢说。越是敢_(d)能说好Q从而Ş成良性@环。不l的话,M阅读、听力、单词再好,再要出口表达Ӟ你会(x)发现自己q很单的意图都难以组l。可惜大多数人都很难克服q个?j)理障碍Q比如在p角,张不开口,q样从一开始就被口语拒之门外了(jin)。那又有没有别的办法呢??/span>
:)
。那是找一两个qx(chng)比较说得来的Q又都迫切想要提高英语的。采用随旉地的方式Q以随意的态度来说Q英汉夹杂也可。这h数多?jin),嘴巴张开?jin),慢慢的也有基础?jin)?/span>
(tng) (tng) (tng)
有h可能?x)问Q怎么说了(jin)q么多,q没提到词汇呢?我的体会(x)是这L(fng)Q听说和d可以说是完全是两个不同的方向Q但是如果只是ؓ(f)?jin)日常听说用,真的没必要这么狠记单词。记得有个统计,口语常用词才
1000
多个。想一惻I很多大字不识的h汉语不还是照栯的很利Q一个大学教授未必就能说得一个卖菜的文盲。语a的学?fn)都是一个道理?/span>
(tng) (tng) (tng)
曑q余敏宏一ơ讲座。余提到的一件事Q让我印象非常深刅R他说有一ơ,发现他在国的女儿,居然能将刚刚听到的一个挺长的新单词拼出来Q从没有人教q她q个词的拼法Q怎么回事呢?因ؓ(f)从小生活在英语环境中Q英语说得很利Q语感很好,到一个单词的时候,Ҏ(gu)据这个单词的读音Q自然而然的就能把对应的字母拼出来?jin)。而中国早期的p教育Q至?/span>
80
q代前生人接受的教育Q,正好逆天而行Q上来就是单词的拼法Q语法。听说反而被轻视Q结果本末倒置Q费力不讨好Q学Z批不实用的哑巴英语。今天再看小学生的英语教Ԍ一上来是听说Q不正体C(jin)教育部门在意识到q个问题后,教育Ҏ(gu)的改q吗Q可惜我们这一代,没赶上这好时候?/span>
3
Q读
(tng) (tng) (tng) ?/span>
d
?/span>
׃同了(jin)。单词对应到中文是汉字Q而不识字如何
?/span>
d
?
所以说到阅读,有必要提到与之息息相关的单词了(jin)?/span>
(tng) (tng) (tng)
单词学习(fn)可以说也是分阶段的,一个阶D|一个阶D늚词汇量要求。比如若为四六考试Q大学英语课的词汇量_?jin),甚至不用L背什么四六词汇Q我大学最厌背单词。只要抓好阅读,当然Z(jin)考试Q还要练?fn)语法。但是,再往后,惌提高Q你?x)发现很隄破?jin)。就是你ȝ再多Q听得再多,也很难有大的提高Q你?x)发C阅读、听力的层次徘徊不前Q似乎一切努力都无用?/span>
问题Ҏ(gu)是什么呢Q词汇量Q也是_(d)q时靠阅L法等已不能克服单词造成的障了(jin)。要辑ֈ一个更高的层次Q词汇量首先需要进阶了(jin)。这是我?/span>
G
的过E中意识到的。在自己极了(jin)大量g一辈子都用不着的单词后Q发现自己阅d听力速度和理解力都容易上M(jin)。很多以前看见就头疼的科普读物也能读一些了(jin)。也是,很多
G
词汇是ؓ(f)d学教U书准备的呢?/span>
Gre
词汇q是有它道理的?/span>
(tng) (tng) (tng)
背单词本w而言Q基本上是体力活Q选书的话Q如果带词根词缀分解更好Q红?/span>
2
版就是这L(fng)Q。而一开始,词根词缀一cȝ知识q是起不?jin)多大作用的。因子里q没有积累一定的词汇量时Q理pM?jin)实际,q些词根词缀的东东根本用不上。往往是单词看得差不多?jin),自己开始有意识的ȝӞ在看有关词根词缀之类的知识,有种豁然开朗的感觉Q这时再用就如鱼得水?jin)。就象大学计机专业时学的数据结构,操作pȝ之类的知识,学是学了(jin)Q很多跟实践联系不上。甚x(chng)时候还认ؓ(f)那些评没什么用。等~程的实践做得、见得够多了(jin)Q才意识刎ͼ哦,那些东西是这么有用的啊?/span>
(tng) (tng) (tng)
另外Q如有特定的应用学科领域需求,q要有针对的补些专业词汇才好Q如计算语、商务英语等{?/span>
(tng) (tng) (tng)
模糊记得一单词与阅读的文章,l合思维的特点,觉得Z错。大致意思是q样的:(x)单词可以分ؓ(f)两类Q一cL非常直观的,?/span>
building,plant
{等直接p反映出是什么意思的Q所以用时Q占用的?/span>
?/span>
内存
?/span>
较小
.
而另一cd是比较抽象的Q如
philosophy, religion
{等Q对q这U词汇,在进行理解与使用的时候,往往要对该词的内涵外延做一些联惛_记忆Q大脑里需要开辟一个较大空间。所以如果一文章多是第一cȝ观的单词Q就能很快的理解Q阅读速度自然快。而若W二cd现的多的时候,容易出?/span>
?/span>
转不q弯?/span>
?/span>
的现象,理解E度和速度自然׃来了(jin)。所以若能对q些抽象的词汇进行一下强化记忆,也是阅读加速的有效Ҏ(gu)之一。那文章还Ҏ(gu)谓常出现的抽象的词汇作了(jin)一个ȝ?/span>
可惜q篇文章没能x(chng)保存Q后来再查也找不C(jin)
:(
?/span>
(tng) (tng) (tng)
下一步就是句型。科普、文学等斚w的文章难懂,除了(jin)专业词汇Q主要难在长句上Q有时一句话是一个段落,定状补从句可能比dq长Q里面可能还套着定状补。常有这U情况:(x)攄看去Q每个单词都懂,但放在一起就不知所云了(jin)Q主谓宾怎么也找不出来啦。出现这U状态,那就说明只掌握基本的句型已经不够用了(jin)。需要补充一些复杂句式。说得挺恐怖,其实Q这些所谓的复杂句式q是很有限的。《杨?/span>
100
句》就ȝ的很好,基本囊括?jin)科普文章里常出现的复杂长句cd。把它熟l掌握了(jin)Q句型这一关也基?/span>
Ok
?jin)?/span>
(tng) (tng) (tng)
另外阅读Ҏ(gu)也很重要。这p中文文章cMQ不同的体裁如说明文、议论文有着特定的展开模式。如议论文往往在每D늚W一句或最后一句给?gu)点等{。网上这斚w的东西就太多?jin),书也多,ȝ的又l又全,我就不赘qC(jin)。但是这些技巧性的东东Q还是那句话Q不从大量的实践中领?x),q是水中捞月而已?/span>
(tng) (tng) (tng)
补充一点,做练?fn)的初期Q若能多看一些趣x(chng)强的或比较l典的的文章D落更好。个个选材的过E很多教育专家们已经为我们做?jin)。其实很多四六模拟题的阅读选材辑ֈ?jin)这一点,很多文章选段在内宏V文彩方面很不错。若能在阅读的同Ӟ若能同时注意领会(x)在知识上的提高、获得欣赏美文一L(fng)满Q就?x)生培d阅读的兴,变枯燥ؓ(f)乐事。若能忘我的投入Q才是学?fn)的最高境界啊?/span>
4
Q写
(tng) (tng) (tng)
q是四项中要求最高的一,最体现水准。就拿单词和句式来说吧,对之掌握的程度比阅读要求要高的多Q也最Ҏ(gu)出现眼高手低的现象。能够阅d宏V结构都较晦涩的文章Q却未必能写好一最基本的三D式议论文。读的时候觉得句子这么写很顺畅、很地道啊。自׃W的时候,׃知道意思该怎么表达Q句型该怎么l织啦,往往出现
“Chin-english?/span>
Q中式英语)(j)的现象。怎么办呢Q再l练句型基本功吧。另外,跟中文作文是盔R的。小学上语文课,老师l常背好词好句。英文写作一L(fng)?/span>
?/span>
学会(x)唐诗三百首,不会(x)做来也会(x)?/span>
?/span>
。这斚wl典背诵书籍为《新概念p》,在学校和单位遇到好多老师推荐它。可惜啊Q虽然早q道这部经典,q今为止我才背了(jin)两篇Q现在还忘得差不多了(jin)。写作也是有体裁之分Q不同体裁有一些段落展开模式Q如应付考试的议论文三段式)(j)Q还有的体裁有一些特别的规定或模式如信函、简历等{。这个倒是相对比较好掌握的?/span>
(tng) (tng) (tng)
写这个方面的l验较少。我真是U怸谈兵?jin),不说了(jin)?/span>
下面谈谈有关学习(fn)资料选取Q这斚w我的体会(x)有两点:(x)
1
Q贵专不贵多
(tng) (tng) (tng)
现在?gu)文辅g的名人可真不,徐国章、李队뀁还有个什么刘毅。看的hD~ؕ。其实谁的都行,怎么说呢。跟定一个,扎扎实实的练?fn)才是最实际的。除?jin)极数特别l典Q如新概念,味性、科学性、词句规范严谨等各方面都较过)(j)的以外,别的都是
just so so,
选一套就行了(jin)Q不必对某个专家特别捧场。所以我也就不特别推荐谁的书啦。要提的是,外语教学与研I出版社出版的外国语大学的书比较权威Q学校大多选他们的书ؓ(f)教材Q这点可以作Z书参考?/span>
(tng) (tng) (tng)
用书不贵多,而贵在专。公怸p很棒?/span>
?/span>
龟
?/span>
介绍q,他最初练?fn)口语素材仅仅?/span>
900
句而已。有?jin)烂熟?/span>
900
句基Q日常的口语基本p应付?sh)(jin)。资料贪多无用。有的网友资料下?jin)一堆,甚至本n是英文版块的坛主,各种东东应有有。到头来却发C仅作?jin)?jin)储藏攉的工作而已Q程度却不见ѝ?/span>
2
Q@序渐q?/span>
(tng) (tng) (tng)
其实像我一个朋友说的,循序渐进的方法是最U学Q长q看来效率最高的Ҏ(gu)。我原来q方面做得不好,q来意识到这一点,所以还是说说这斚w的想法,能给大家以启发或警示最好?/span>
选材的时候要注意循序渐进。其实这个方面,学校教育提供的资料挺不错的。特别是听力斚w。比如说吧,听力多分初、中、高U(如外研社的教材)(j)Q从单的句型、对话、小D落Q到场景对话、短文,再到演讲独白{,各种cd的正式与非正式材料应有尽有。由入深、由慢到快。开始时Q练听力U等于练?fn)听单词Q单词都听出来了(jin)Q意思也q道了(jin)。再往后,要慢慢注意ȝ常用说法Q比如有的可能不很合语法规范{;注意语音语调不同Q所表达意思的不同{?/span>
(tng) (tng) (tng)
虽然泛听能增感,但到?jin)一定程度,?x)发现决qx(chng)里积累下来不耳熟却不很明意思的地方。这是进阶的关键时刻Q须借助于精听了(jin)。有时精听时Q容易出现精涣散的现象Q即使x(chng)塞着x(chng)Q放着很大声的pQ思想却不知跑到哪里去?jin),特别对于?/span>
?/span>
?/span>
?/span>
?jin)的D子Q更易出现这U情c(din)怎么办呢Q好在还?/span>
?/span>
听写
?/span>
Q听力教材也常见q种题型Q这招,能帮助克服这U障?/span>
toefl
听力也是不错的精听材料。走遍美国趣x(chng)强Q可作ؓ(f)辅助泛听材料Q当背景的那U?/span>
(tng) (tng) (tng)
单词斚wQ可以这P(x)四六U词?/span>
-
〉托词?/span>
-
?/span>
Gre
词汇。这样一步一步来Q有个缓Ԍ不至于太痛苦?/span>
(tng) (tng) (tng)
阅读材料要多选练隑ֺ适中的,偶尔I插试一些难度高?sh)点的。什么样的是针对自己隑ֺ适中的呢Q一阅L选拿在手中,随意抽查几篇文章。若是一文章几乎没遇到什么单词,几乎不假思烦(ch)一遍就q,内容什么也能概括个八九(ji)不离十的Q那说明选材太容易啦Q没有挑(xi)战性,该换本深点的。若文章看下来,有一些生词很正常Q但是不查它Q或E查几个也能去;L个别句子需要重复看上两三遍Q但最后也能根据上下文把文章大意领略个差不多。那么这个难度就是适中的,比较适合当前阶段的学?fn)用。等l到q样的文章也辑ֈ前面的那U程度了(jin)。那恭喜你,你已l有?jin)可喜的q步Q可以进阶啦Q?/span>
(tng) (tng) (tng)
要注意的是,千万不要上来选些出自己层次许多的,比如上来啃原著Q搞大跃q。也许有不是推荐看原著吗Q那是对阅读
(
包括单词
)
功底已够深的h说的。读原著实是更原滋原味Q特别是名著Q语a或文彩绚丽或意味深长Q对提高?gu)ƣ赏水^和作文层ơ有好处。但对初学者来_(d)M句话化上十分钟查单词Q根本无法领略这U好处。一步一步来Q不断的收获小的进步,其中的成感对保持旺盛的斗志有好处。急功q利Q无疑是在扼杀自己寚wȝ兴趣和耐心(j)。当然更难提长进?/span>
(tng) (tng) (tng)
Z提一句:(x)有条件最好备个文曲星Q很方便哦,q可利用之抓住点滴时间背单词。我最没耐心(j)查字典,特别是做阅读的时候查最不爽Q本来一文章看?jin)一半,查几个单词回来,看过的什么东东也忘得差不多了(jin)Q特别是E有隑ֺ的文章。文曲星查v来快多了(jin)?/span>
(tng) (tng) (tng)
另外Q英语学?fn)的持?hu)性比较重要。特别是阅读Q隔一D|间不看,再拿h׃得不从一个低些的层次在往上进步,仿佛(jng)语感上出?jin)断层。所以要量不间断,不然
?/span>
逆水行舟Q不q则退
?/span>
?/span>
最后一点,现在U种吹嘘的所谓学p的捷径不,gq没有哪个经得v(g)验呢。还是踏t实实最明智。共勉吧Q欢q大家拍砖和切磋Q尤其期待说、写斚w有心(j)得的Q把你们的珠?/span>
show
出来吧!
(tng)
备注Q此文于
]]>
本h与大家一P原来只是一个普通的E序员, 靠给软g公司打工谋生。后来感觉这样长期干下去没有什么前途,虽然现在q轻q可以加班加炚wDn体吃饭,以后q纪大了(jin)怎么办?听说很多己单q每q靠?享Y仉可以赚几十万Q我Z么就不行Q仗着自己技术好Qƈ且当时已l有?jin)成熟Y件的思\Q我p职出来加入共享Y件这一行当?jin)?
通过半年多的日夜苦干QY件终于编出来?jin)。由于我觉得自己的Y件功能比较新颖,~程的技术也很好Q以为只要一发布?yu)׃?x)大家抢着注册购买Q也可以像那些成 名的׃n软g作者一h月坐拿几万元Q结果却是o(h)我想象不到的Q在发布后的W一q_(d)只有1个h注册Q只得到可怜的几十元。我q下才认识到?jin)Y件推q的重要 ??我们作ؓ(f)技术h员,往往是重技术轻营销Q结果是再好的Y件也׃无h知晓而只能孤芌赏。我q时有意在|上搜烦(ch)软g推广斚w的文章,国内的资料少到?外的׃n软g论坛LQ另外还l合自己在实际推q中的经验教训不断改q自q推广技巧,慢慢地在W二qY件推q有?jin)初步vԌ拿到?jin)一千多元。接q在׃n 软g领域摸爬滚打?jin)几q后Q现在终于每月都有近万元入̎。虽然比起那些共享大牛们来说q点p?sh)挂Q但自己认ؓ(f)q算不错?jin)。ؓ(f)?jin)避免程序员(sh)重走像?当初的很多弯路,现在把自ql验教训写出来,l大家在软g推广斚w一点启C?/p>
W一?对Y件本w的要求?/p>
也许大家?x)觉得奇怪,不是讲Y件怎么推广吗?怎么?x)讲赯Y件本w的要求来了(jin)呢?
其实一点也不出奇,高楼万丈在于基础是否E_。没有一个好的Y件品而去I什么推q,不要说很有成功的,即是推q出M(jin)Q客h到手之后也会(x)有受骗上当的感觉Q退货以?qing)退ƾ,再加上对你的软g的负面宣传会(x)搞得你焦头烂额的?/p>
那么怎么才算是一Ƒ֥的Y件呢Q首先你的Y件要新颖独特Q要有别的Y件没有而大家又需要的功能。很多程序员常犯的一个毛病是Q他们喜Ƣ从自己的技术出 发,~自己喜Ƣ编的东西,或者干脆就是卖弄自q~程技术。其实作为用h_(d)他们不懂也根本不?x)关心(j)你的Y件中使用?jin)什么先q的~程技术,他们所兛_(j)?是这个Y件能l自己带来什么有用的东西。有些程序员没有自己的独特的思\QLZ亦云Q一看到|络上什么Y件热门了(jin)Q马上就q行仉K,现在不是QQ行吗,他也跟着~一个聊天YӞ不是FlashGet很热门吗Q他也随着~一个下载Y件。这L(fng)软g能销出去才怪了(jin)呢?/p>
在这里我的经验是Q如果你不知道编什么样的Y件才能好销Q你q在普通电(sh)脑用L(fng)角度来考虑问题。要一切从用户观念出发Q要从用L(fng)要求入手Q只要是?户需要的功能Q那怕Y件只有这一个功能,只要别h的Y件还没有包含Q你在这里就有成功的可能。例如周弈的MP3 CD MakerQ功能ƈ不复杂,但大安要这个功能,而当时的很多行软g如Nero{ƈ不具有,因此他凭q一点就可以月进上万金?/p>
q?有就是,软g本n必须可能完,也就是没有什么明昄Bug。现在有许多人在软gq没有经q什么测试的情况下就急着发布Q结果别Z用到处都是问题,q?L(fng)软gl用L(fng)印象很差Q只?x)给软g造成很大的负面媄(jing)响?我的l验是,软g~好后至要l过两个月的试。不但是自己要彻底测试,而且要交l你w边的亲戚朋友测试,当然能交l普通的用户试更好了(jin)。也怽?x)?别h?x)愿意这样做吗?我的l验是只要答应测试完后免费给他们正式版的注册码,他们是很乐意Z试的?/p>
W二?软g推广的常用方?/p>
首先Q当然是把你的Y件发布到大型的Y件下载网站,如华军Y件园、天IY件站{,至于那些成百个小型的下蝲|站嘛,没有必要一个一个发布了(jin)。当初我?惛_q些Y件下载站发布Q可很多Ҏ(gu)没有发布Y件的面。有的给个Email地址q不错?jin)(不过我用电(sh)子邮g发布软g后也像惔牛入Px(chng)音信Q, 有的q脆只有一个QQL(fng)。其实据我观察,只要你在华军软g园、天IY件站{发布成功,׃(x)有不Y件下载网站也跟着转蝲。这样也好,省去?jin)我的不?间?/p>
其次Q是要专门ؓ(f)你的软g建立一个网站。也怽?x)说Q我不是已经把Y件发布到其他|站?jin)吗Qؓ(f)什么自p要费力去做一个网站。原 因很单,别h的网站是别h的,你自己必M要专门有个网站来推广Q同时这个网站也要负责搜集用L(fng)信息反馈{,另外更重要的是:(x)׃n软g重在服务Q你q?要依靠这个网站来对你的Y件用h供技术支持等服务。值得特别要提醒的是,你的|站要做得很专业Q要使得用户q入你的|站后能产生你们有着强的技术能力的 印象。千万不要认己是做Y件的Q不懂得~网站,随便制作一个对付(sh)(jin)事。我有个朋友Q下载某软g试用后曾l想购买正式版,可一q入作者的陋的|页Q?没有了(jin)购买的欲望。因Z的网站做得差Q容易别h联想C的编E技术以?qing)服务也差。所以说Q差的网站不但不能对你的软g起到推广作用Q还相反可能把你 的潜在客戯跑?/p>
其实既然你都能够~得?gu)YӞ要设计出一个网站也不应该是什么多隄事,关键q是在于你舍不舍得下功夫。如果你实在 没有旉学习(fn)~写|页Q那p炚w请专门的|页设计公司帮你制作一个吧。也怽又会(x)_(d)那我没有钱怎么办。这里,我叫你一个密招(我轻易不?x)教l别?的)(j)Q去大型下蝲|站下蝲排名TOP 10之内的Y件的官方|站中找一个最W合你Y仉格的Q用Frontpage 把整个网늅搬下来,把文字及(qing)囄换成你的Q而保留原来网站的布局?qing)CSS样式Q这样一个专业的软g推广|站p生了(jin)。这一招我在当初也使用q,不过后来 自己学习(fn)?jin)网站设计方面的知识后,׃断加以改q完善,早已l比原来的别人的|站都专业多?jin)?/p>
|站有了(jin)之后Q也不是׃事大吉了(jin)Q网站本w也有个推广的问题。要Ҏ(gu)你的软gQ设计一些关键字Q把q些关键字用在你的网站的标题?sh)?qing)|站内容之中Q得别人在用这些关键字在GOOGLE{搜索引擎上搜烦(ch)Ӟ能很快找C的网站。当?dng)|站的推q不是我们这里要讨论的话题,你在|络上应该能方便地找到这些资料。如果你能把有关你Y件的关键字做到GOOGLE搜烦(ch)l果的第一,那么恭喜你,你离成功不远?jin)?br />再次Q是有关软g的广告宣传问题?/p>
有h?x)说了(jin),那很单,找一个流量大的网站如新浪、网易, 在上面打q告宣传不就得了(jin)。是啊,如果你每月能付得起几万元的广告费q样做当然无可厚非。不q如果你每月有几万元的收入,我看也就用不着靠共享Y件吃??jin)。其实打q告是很有学问的Q不是单单看|站的流量大,而是要针对你的Y件的潜在用户的情冉|定。关键是你要仔细分析来该|站的浏览者是什么样的hQ如 果与你Y件的潜在用户相同,?qing)时|站的流量不是特别大Q你也可以在上面打广告。这样你q׃多,但正中你的目标用Pq告的效果是很好的?br />
我有个行业应用YӞ一开始在一般的软g下蝲站打q告Q但发现效果q不好,因ؓ(f)q些用户只是来寻找一些常用系l工兯Y件的Q对我的软gq不感兴。后?我发现有个Y件商务网http://www.bizsofts.com 的浏览者与我Y件的用户相dQ就在这个网站上打广告了(jin)。广告是文字cd的,在网站的“热销软g”栏目中Q由于该栏目出现在Y件信息的所有的面中,所 以浏览量也不。最主要的是q告费不贵,每月?00元,q告发布后效果很不错。现在也有h在做GOOGLE ADWORDS文字q告Q不q我q没有试q?/p>
W三?软g如何推向外
你的软g已经在国内推q了(jin)Q还要不要走?外Q回{是肯定的。由于国内存在对盗版解密{活动打M力的问题Q你辛辛苦苦工作出来的劳动成果,l别人破解后可能全部付诸东流。所以在国内防止软g?破解是一个重大的NQ对付破解的问题我留C一点再仔细讌Ӏ而在国外Q由于对于盗版以?qing)破解打ȝ力度较大Q另外用L(fng)正版意识普遍比国内要高,所以付 钱注册购买的Z相对较多。所以你的Y件在国外推广是很有必要的。就拿我来说Q现在Y件收入的大部分就是来自v外用戗?/p>
在v外推qY 件的W一步也与国内相cMQ也要把软g提交到大型的软g下蝲|站。国外的大型下蝲|站主要有两个:(x)一个是www.download.com Q另一个是 www.tucows.com 。与国内软g站不同的是,在download.com 上发布Y件是要收费的Q每提交一ơ要?9金QUPDATE一ơ也要收79金。如果你真想把Y件推向v外的话,q笔钱是不能省的。因?download.com 实在是太热了(jin)Q名W其实是全球W一的Y件下载站Q如果不在这里发布,你会(x)损失一大半的Y件用戗另一个Y件下载网?tucows.com 虽然L(fng)能免费发布,其实你如果真q样做的话,你会(x)大失所望的。我有个软gQ一月䆾向 tucows.com 提交?jin),可是到六月䆾q没有发布,q入作者管理界面一查,是在 8340个待审查的Y件中排第 1367 位,可能一两年后才有可能发布。后来干脆花?59元“插队费”,l果没过两天发布了(jin)?/p>
另外Q在国外一般都是找一家代理公司帮你收钱,每月定期寄支给你。代理行业在国外已经 是一个很成熟的行业了(jin)Q不用担?j)代理?x)不给׃。比较大一点的代理有:(x)www.RegNow.com 设施最完备的代理,需要开戯?a >www.Qwerks.com 免费开P据说信誉极好。还?a >www.Shareit.com 也是一家不错的软g代理公司?q有www.RegSoft.com 不过据说反映一般?/p>
除了(jin)把Y件发布到q些下蝲或代理网站之外,你自׃要相应有一个英文网站。如果你的英文不是特别好的话Q奉劝你找一个英语特别棒的朋友或q脆花钱请专业的p专家译一遍再发布你的|站Q否则你的网站不但v不到推广作用Q还?sh)(x)给国外用户留下很差的印象?/p>
要想软g推向外Q除?jin)以上介l的Ҏ(gu)之外Q重视国外用L(fng)反馈信息以及(qing)搞好服务也是特别重要的。我有个软g发布?download.com 后,大约q了(jin)一个月看到上面有一个评论,把我的Y件评价ؓ(f)最差,q且加了(jin)一大堆评语Q说他虽然是个捷克hQ英语ƈ不是他的母语Q却也发C(jin)我Y件中的英?是terrible English Q充满了(jin)错拼的单词,不存在的单词{;另外软g打开以后Q界面没有操作提C,Ҏ(gu)不知怎么使用Q功能也不完善;?024 x 768的分辨率下无法满屏显C等。M把我的Y件贬得一无是处,用他的话来说是:(x) Terrible, just terrible?/p>
一开始,我也觉得很灰?j)气,但后来我仔细一惻I何不此Ҏ(gu)BugQƈ升软g呢。由于在download.com中找不到评h(hun)者的联系方式Q我在 软g的注册者信息中扑ֈ他的Email地址Q把我改正过后的软g?sh)邮l他Qƈ诚恳地请他l指正我的错误。果然不久他回复了(jin)我的EMAILQ在邮g中他 一条一条地指出?jin)我的其他错误。我借此Z(x)q一步更正错误ƈ把Y件升U到?.0 Q我的软g上了(jin)一个大台阶。MQ重视用户对你Y件的评h(hun)?qing)批评,U极面对用户的意见,q样即是坏事也能变成好事?/p>
另外在国外, 是会(x)遇到别h购买你的软g后觉得不满意而要求退Ƅ。PayPal以及(qing)其他的付?gu)ƾ方式都有几十天内不满意可以要求退Ƅ条文。对于要求退Ƅ用户Q他如果 坚持要退是一定可以退的。所以一般都是根据用戯求直接就退l他Qƈ告诉他Keep my software as a giftQ反正他已拿到注册码?jin),你做什么都没用Q不如来个顺水h情。即使他退完款后又来信要求你提供技术服务,你也要尽可能帮助他。能做到q点你的服务 才能真正到家了(jin)?/p>
W四?如何应对软g的破?/p>
在国内推qYӞ你要面对的最大问题莫q于软g被破解了(jin)。很多Y件作者反映说Q原来Y件在被破解前交费注册的hq(sh),但被破解后收入就直线下降Q连成本都收不回来。?zhn)惻I有了(jin)免费的东西h们还?sh)那个钱q什么?
在这里,我借鉴?jin)一个Y件作者的防破解经验:(x)发行1.0版时2.0版已l写的差不多的。发?.0版时要把1.0版的防破解或者注册算法写的简单些{着 别hȝ解。一但出?.0的破解,{待几周Q这几周的时间以ɾ|上1.0的破解版遍天下。然后,分析破解q程更改2.0版算法(层层加密Q复杂再?杂)(j)Q虽无法栚w破解但可以浪费破解者的旉和耐力Q一般情况下Q在|上一搜你的Y件已l有破解版了(jin)Q?.0的)(j)新的破解者很会(x)再去破解Q何?.0?本更复杂些。我的一个Y件用?jin)此法,推出一月后被破解组l破解,公开破解q程?qing)注册算法,q做成破解教E。其实破解从某种意义上说是帮我宣传了(jin)软g。我?一个月后推出早已经写好的新版本Q还注册成了(jin)“特别版”以qh惌破解版的人。用上q方法后臛_在我更新?jin)几ơY件后的今天仍没出现破解。但在网上搜?解版、特别版、注册版到处都是Q可没一个是真的。其实一些破解高手只是想试探自己的能力,破解一个Y件后Q一般会(x)把目标定在下一个Y件上。不q如果你的Y 件成Zh手必备的工具Q此法怕是不灵?jin)?/p>
另外Q从技术上讲也有一些防破解的方法。假设你的注册部分有300行,你可以分?0?inline函数调用Q一定要inlineQ,func1(),func2()... func30(). 他们随意放到程序的各个部分Q一定不能放在一赗不要用Memcpy{常用系l调用拷贝注册码Q尽可能自己?像Memcpy很好写,性能差点无所谓?l过~译后inline函数展开Q注册部分和其他代码混在一P他要写出注册机就很困难,因ؓ(f)要向在几十万甚至上百万汇~代码里扑և有用的注册部分那?像是在大v里捞针。另外注册码也不要放在一P假设你的注册码是12位,千万不要用一?2位的数组放注册码Q你可以在程序的不同位置定义12个全局?W变量,每个放一位,q样注册码在内存׃q箋(hu)?jin)。最好再加密处理一下(单的字符异或可以)(j)Q验证时再解密。只要破解者找不到你验证结束的地方Q暴?和Loader破解也没有可能。很重要的一Ҏ(gu)不要用连l内存(sh)存验证用到的变量Q尽量将用到的验证(f)时变量分散定义在E序的不同处Q再在验证中Q不断{ UM些值到其他变量中,对付暴力和Loader?x)比较有效。没有必要用复杂的加密算法,更容易成t的目标。只要你注册部分隐藏的_好,也没有漏 z,你花1天写的加密算法,破解者可能会(x)?00Q?000倍的旉破解。大部分人都?x)放弃。你注册做在一P像你的胦(ch)宝放在现代保险箱里,虽然?常坚固难以解密,对于开锁高手两分钟打开?jin)。对于一些比较专业的破解者采用上面的Ҏ(gu)也是很有效的但是Q还是要避免一些低U失误例如:(x)不要在内存(sh)直接 出现注册码和明显的注册码比较部分不要l用户太多的有关注册验证的信息,也不要接收到注册码后立刻p行比较。在软g的不同功能处实现验证时的好处q有?是不?x)立L行到验证代码注册码,可以分多ơ验证,也可以分成几部分验证Q还可以分成几层验证验证Ӟ可以量多执行一些无用的操作Q加上一些象递归之类 难于调试q踪的代码,但在其中要穿插实现Y件功能的代码Q否则h家直接就跳了(jin)q去。反正就是越不引人注意越好,亦即ؕ好?/p>
其实要想d防止破解也是不现实的Q除?jin)研I一下破解方法,在发布前加壳外,q用以上所说的Ҏ(gu)外,不断升E序也是比较好的Ҏ(gu)?/p>
MQ推qY件对于搞惯了(jin)技术的软g作者来说一开始会(x)C些弯路,但只要不断学?fn)成功者的l验Q不断吸取自己失败的教训Q你也会(x)成功的。最后,大家个个都成ؓ(f)׃n高手? (tng)