轻松学英语

轻松学英语

 

————轻松学英语第一步:建立英语思维

为什么大家学英语学得这么累,最后依然对英语糊糊涂涂?原因只有一个——就是我们的学习能力太差了!!我们的老师太笨了!!!
这篇文章主要是给大家讲英语的基本结构, 看了这篇文章,你们会突然就明白,英语怎么会如此简单!!

首先我们来看下面这两张地图(左边是中国地图,右边是英国地图):
例如,我们中国人一见面第一句话是——“你吃了吗。”
英国人一见面的第一句话是——“今天天气怎么样? what’s the weather like?
为什么中国人一见面就问:你吃了吗? 英国人一见面就问:天气怎么样?

咱们来看看语言是怎么来的……

首先,咱们中国人在中国的土地上生活了五千多年。我们中国人靠什么生活了五千年之久?靠种地!!!也就是说五千多年来,我们都是靠种地为生,咱们中国人是地地道道的农民。农民种地需要土地肥沃,需要气候条件好,这样粮食才会多。中国土地肥沃吗?不肥沃。气候条件好吗?也不好。因此收的粮食自然也就不多。粮食一不多,就导致中国人最关心的事就是“吃饱”,所以一见面就问“你吃了吗?”。从这我们可以看出中国的地理环境决定了中国人在这块土地上干嘛?——种地。种地就决定了粮食不够吃。粮食不够吃,就决定了中国人的语言特点,第一句话就是——“你吃了吗?”,因此,中国的地理环境就决定了中国人的语言。

咱们再来看英国人的语言。英国人一见面就说“今天天气怎么样?”。咱们把英国人为什么问“今天天气怎么样”这个问题弄明白,学英语的问题就全解决了。从上面的英国地图,我们可以看到英国人是住在一个岛上,四周都是大海。既然是一个住在岛上的民族,他们用得着像我们中国人一样种地吗?咱们中国人种地春天播种,秋天收获,忙一年才收获那么两三次,多累呀!!所以他们犯不着跟我们中国人一样种地,打渔就好啦,吃现成的。三百六十五天,想什么时候吃就什么时候打,自然也就不缺吃的。既然英国人不缺吃的,那他们在什么情况下才会挨饿? 要是天气刮风下雨他们还能出海打渔吗?不能吧?所以只要一刮风下雨,他们就没法出海了,不出海就打不到鱼,自然也就挨饿。所以英国人最关心的是天气,见面必问“今天天气怎么样?”。英国的地理环境决定了英国的语言,这个岛国就决定了英国人的思维方式,也决定了它的语言特点。世界上任何一个民族,你只要听这个民族的第一句话,就知道这个民族的特点。

咱们再来举一个例子:日本。日本的第一句话是:“昂吧里嘛斯(音译)”也就是“努力吧”的意思。咱们先来看看日本的地理环境:首先,日本也是一个岛,它不像英国这个岛,鱼多的是,只要天气好就不会挨饿,所以英国人先关心天气。从地图上看,可以知道,日本比较靠近咱们东北,是一个纬度很高的地方。纬度高,说明这个地方冷。天气一冷,种粮食就不容易长。由于这个地方水冷,鱼自然也不爱去。那么就造成日本收获粮食少,打渔又打不到的局面,收成很困难。那么日本靠什么存活到今天?“昂吧里嘛斯.”努力吧!

你看我们中国人的特色,刚出来就问:你吃了吗?那日本人呢,你刚一进厕所,他就“昂吧里嘛斯,昂吧里嘛斯。”上厕所他也“努力吧”。
一个民族的思维习惯是改不了的。一个民族的地理环境就决定了这个民族的思维习惯。这个思维习惯,就决定它的语言特点。
咱们学英语为什么学不会?问题出在哪里?——我们一直在拿“农民”的思维去学英语,去学“渔民”的语言。怎么可能学得会呢?以前的老师也是在用农民的思维在教我们,所以写出来的句子还是农民。你怎么样才能改变,把学英语变得简单?你要改变你的思维方式。用渔民的思维方式去学英语。建立一个渔民的思维方式难不难?我告诉你,一点都那不难,非常非常简单。
渔民的思维方式非常简单,它的语言特点也非常简单。它比我们农民简单得多得多。咱们举个例子:过马路

中国人过马路 英国人过马路

咱们来看看中国人过马路是怎么过的?想从哪过就从哪过,对不对?十个中国人过马路,会从十个不同的地方过。如果是十个英国人呢?他们都会老老实实的走人行横道。你看中国马路跟英国马路就知道了。中国的马路中间都有一个栏杆,这个栏杆就是为了防止咱们中国人横穿马路。结果,走不过我们就跨栏,看我们中国人有运动精神吧?跨着,跨着,跨出了个刘翔来……英国人马路中间都没有栏杆,可是他们都不横穿马路,都走人行道。为什么?——渔民!!

为什么中国人过马路想从哪过就从哪过呢?我们来看看中国人五千年来是怎么生存的。我们是农民。我们是个体经营,知道吗?我在我的地里种土豆,你管得着吗?我种玉米,你管得着吗?我六点钟下地,你管得着吗?我八点钟下地,你管得着吗?我今天不去了,你管得着吗?所以农民是我想干什么,他就干什么。所以到今天,他想从哪过他就从哪过。这是个体。

咱们再看看英国人,英国人是渔民吧?英国人是在海里打渔。一个在海里打渔的民族必须要用大船吧?用一个小船能行吗?到海里就翻了。它必须要用大船。一个大船必须有五个人,十个人。必须有掌舵的,有升帆的,有撒网的,有划桨的。那么英国人这五千年它是怎么作业的?集体,团体。所以咱们来看:比如我是船长,我说六点钟上船起航,所有的人都怎么样?都要六点钟来。我说向东划,所有人都要向东使劲。所以它形成了一种思维方式。就是说非常守规矩,非常讲秩序。你看我们中国人,公共汽车一来的时候“呼~~”都往那挤。而英国不是,英国人:“即使剩下一个人,它也老老实实地排成一队。它的生产生活方式就决定了这个民族的特点。
现在咱们再来说语言,前面我们说了:一个民族的思维方式就决定了这个民族的语言特点。中国人的说话特点是想怎么说就怎么说。也就是一个意思让十个中国人来表达,十个人会说出十句话,十个不同的表达方式。而让英国人表达一个意思,就跟他们都走人行横道一样,十个英国人说出的话一模一样。所以这种语言非常非常简单。简单到让人难以置信。不像我们的语言,我们语言到今天为止,你想把中国的语言统一起来是非常困难的。现在我们来看看中文复杂到什么程度,例如:我们可以把一个东西叫做一支笔、一张纸、一台电脑、一块眼镜、一条毛巾、一张桌子……但是英国人呢?a,一个a,全解决了。他搞不清我们中国人在干什么。你们累不累啊?我们就这么累。英语就像刚才我说的那个a的表现形式,它跟中国完全不同。我们中国人最擅长把简单问题复杂化,而英国人最擅长把复杂问题简单化。

英语简单到什么程度?我来告诉你,英语只有三个句子。对,你没看错,英语就只有三个句子。英国人就会说三个句子,英国人要是说第四个句子,我爬楼上跳下去摔死。一个民族语言表达只有三个句子的时候,你就知道它有多么简单!!有多么容易学!!

我用最快的速度把这三个句子给你们讲一遍,因为我不讲得那么细,只是给你们介绍一下。主要是让你们明白它有多么简单!!

比如,我们看这个句子:The man is a teacher. 这句话怎么翻译?——这个人是一个老师。
The man 是什么意思? Is是什么意思? Teacher是什么意思?
如果有人说:Is是“是”的意思,那就完啦。这是什么人?农民!!为什么?——他(她)在学英语的第一天就被老师一脚踹粪坑里了,得花一辈子从那粪坑里往外爬。

因为把“is”当“是”了。这样就惨啦!! Is是“是”,they are teachers的“are”也是“是”。那英语就没办法学了。

这样的话“How are you ? ”就变成“怎么是你”了。
“How old are you? ”就变成“怎么老是你”了。
然后“天天向上”就“good good study,day day up.”
“人山人海”就“people many people see. ”
“给你点颜色看看”就“give you color to see see.”

结果全是拿英文单词按中国人的思维方式拼出来的句子,翻译出来的句子全是这玩意,根本不是英文。所以我们以前是用什么思维方式在学英文?农民!!

我们再来看看“渔民”的思维方式。咱们看下面几个句子:
这个人是一个老师。(英文怎么说?)—— The man is a teacher.
刚好和中文对上“人——man 是——is 老师——teacher”

再看这个句子:
他很忙。——中国人说“他很忙。” 中文有“是”吗?——没有!
英国人怎么说?He is busy. 英文要不要“is”?一定要有。

第三个句子:
她在教室里。 中文里有“是”吗?——没有。
英文怎么说?——She is in the classroom。

你看,中文一会有是,一会没有。而英文怎么样?非有这个“is”不可。那我们首先就要搞清楚,英国人为什么非要跟这个“is”没完没了?

我们说过了, 英国人只有三个句子,它只会说三句话。那么,一个民族只会说三句话的时候,首先就要区分出来这三句话。靠什么来区分呢?我举个例子,开奥运会,有三个国家参加奥运会。老远,我们就说美国队出来了。怎么知道美国队出来了?美国队举着美国国旗。我们说英国队出来了,英国队举着英国国旗。一看五星红旗,我们就知道谁出来啦?中国队。英国人说每一句话的时候它最在乎谁?在乎那面旗子。英文的第一面旗子就是“is 、am、are”当你发现一个句子有“is、am、are”的时候,你就知道英国人想说什么啦!!英国人想说:
当“is”后面是名词的时候,它表示是什么。—— 什么人、什么东西是什么。
当“is”后面是形容词的时候,它表示怎么啦。——什么人、什么东西怎么啦?
当“is”后面是一个介词加名词(我们叫它介词短语)的时候,它表示在什么地方。——什么人、什么东西在什么地方。

要是你明白了上面说的,你就明白了英语的三分之一。这种句型就叫:主系表。“is/am/are”就是这个句型的灵魂。这个句子就是三个单词:主、系、表。
主语永远是名词,人或者物。 表语呢?有三种可能性:一种是“名词”,表示“是什么”。
二是“形容词”,表示“怎么了”。
三是“介词短语”,表示“在什么地方”。

掌握了这个句型,就掌握了英语的三分之一。剩下的就是要牢牢记住这个“be(is/am/are)”的变化。
比如:现在时——is/am/are
过去时——was/were
将来时——will be
完成时——have been
过去完成时——had been
将来完成时——will have been

非常简单,一下子就记住了。你们看:
你有钱。——You are rich.
你将来有钱。——You will be rich.
完成时呢?——You have been rich.
过去完成时——You had been rich.
将来完成时——you will have been rich.
过去将来完成时 ——You would have been rich.

··········

一共就八句话,这个句型就学完了。学这么点就学了英语的三分之一

———————————————————————————————-
你们之前为什么出问题了?咱们来看看问题出在哪····
看这个句子:The man is a teacher.
Man 是什么词?——名词
Teacher 什么词?——名词
in the classroom。Classroom什么词?——名词

我们来看看英语是怎么变长的。因为英语一变长,咱们就乱了。
比如我说:从英国来的那个人在教室里。(从这里有些人就开始乱啦)
“英国来的”我们用什么介词?——From “从英国来”——From England

从英国来的(介词短语)那个人在教室里。——从这句话可以看出,咱们中国人“在用介词短语做定语的时候,修饰哪个名词放在哪个名词的前面。”
The man from england(介词短语) is in the classroom。——英国人“在用介词短语做定语的时,放在修饰名词的后面。”

再看:she is in the classroom. 她在教室里。 她在二楼的教室里。用英文怎么说?——she is in the classroom on the second the floor.
“on the second the floor”为什么放在“classroom”后面?修饰哪个名词放在哪个名词的后面。
大家按照上面说的,试着把下面句子翻译成英文试试,体会一下:
这个人在二楼的教室里。——The man is in the classroom on the second floor.
这个人在大楼的二层的教室里。——The man is in the classroom on the second floor in the building.
哪个“building”? In the school ; 哪个“school”? In shanghai;哪个“shanghai”?In china.这个句子就这么一下子长下去。你们把它翻译成中文,再体会体会英文,一下子就全明白了。中文怎么说:这个人在中国上海的学校大楼的二楼的教室里。——我们关心的是这个人在哪?而我们的语言中偏偏把这个人放哪啦?放后面。而英文放哪?“the man is in the classroom”。英文把重要的放前面。

比如:
桌子上的钱是我的。——中国人先说桌子上,然后再说钱是我的。而英国人怎么说?“Money on the desk is mine.它把“money “放前面。钱重要还是桌子重要?钱!!

为什么我们中国人把不重要的放前面?因为我们是农民。农民为什么有这种毛病?农民是春天播种,秋天收获。他收了粮食以后,这个农民是先吃好的还是先吃次的?先吃次的。好粮食可以存,一直存到第二年的秋天。次粮食是不能存的,所以它一直先吃次的,吃吃吃吃,吃到好的,吃到第二年秋天。要不然我们这个民族就饿死了。而渔民是怎么样的?渔民三百六十五天,天天能打到鱼。打到鱼他先吃好的还是先吃次的?先吃好的。为什么?这鱼不能放啊,第二天它臭了,晚上就臭了。所以它先吃好的,把坏的扔了。所以它的思维,你看它总是把好东西放哪?放前面,重要的总是放前面。它的生活习惯决定了它的思维方式。包括我们中国人的饺子。吃过饺子吧?哪里好吃?馅!!馅在里面呢,它把好东西包里面。吃过包子吗?吃过馅饼吗?吃过月饼吗?吃过汤圆吗?吃过馄饨吗?你们看,中国人都把好东西干嘛?包里面了。它的习俗和我们的思维模式一模一样。你们看英国人吃什么? 吃过批萨吗?馅在哪?表面!!吃过蛋糕吗?奶油在哪?表面!!一个民族的地理环境,就决定了一个民族的思维方式,思维方式就决定了它的语言特点。

到此为止,我们学了英语的三分之一了。这个句子最重要的就是主系表,那个“Be(is/am/are)”。然后这里把我们搞糊涂的是什么?英国人用介词短语做定语放在哪?修饰哪个名词放哪个名词的后面。一个一个往后放。

我们再看第二个句子,我们在每个句子上都出现问题。
“There is a table in the room.”翻译成中文怎么翻?——房间里有一张桌子
In the room 什么意思? A table 什么意思? there is 什么意思?

要是有人说“there is”是“有”的意思,那就麻烦了!!又是农民的思维方式。
我告诉你,“There is” 在英文中什么意思也没有,它是英文中的第二面旗子。当你发现一个句子里有“there is”你就知道英国举起第二面旗子。英国人举第二面旗子的时候,你就知道英国人想说:什么地方有什么。

例如:
桌子上有一本书。——There is a book on the table.
桌子上有一只猪。——There is a pig on the table.你如果不想让猪在桌子上怎么办?把它扔厕所里去。There is a pig in the WC.

就这样,英语的三分之二学完了!! 剩下的就是旗子“there be”的变化了。
单数用“there is”
复数用“there are”
过去式用“there was”
将来时“there will be”
过去将来“There would be”
…………
因为我们以前不认识这面旗子,所以我们糊涂了。

咱们看:
桌子上有一本书。There is a book on the desk.
教室的桌子上有一本书。There is a book on the desk in the classroom.
二楼的教室里有一本书。There is a book in the classroom on the second floor.
大楼的二层的教室里有一本书。There is a book in theclassroom on the second floor in the building.

看上面的句子看出来了吗?英文都是把重要的放前面,越不重要的越往后甩!
咱们用中文来对比一下:
如果我说:上海市(你们知道我后面要说什么吗?)浦东区(我后面要说什么?)一所学校(后面还说什么?)大楼的,二层的(知道我说什么了吗?)图书馆···的桌子上···有一个钱包。——上海市浦东区一所学校的大楼的二层的图书馆的桌子上有一个钱包。
你们听我说完才知道,噢!有一个钱包。
我还没说完呢,还有个“吗?”字
知道我加个“吗”是什么意思吧?我在问你们呢!!
刚才那句话连起来就是:上海市浦东区一所学校的大楼的二层的图书馆的桌子上有一个钱包吗?
所以说中文你没有听到最后一个单词,你就不知道它要表达什么。
咱们来看这句话用英文怎么说:Is there(你看,英国人一说“is there”知道英国人干嘛吗?在问你。在问你“什么地方有什么”)a wallet(钱包)on the desk in the library on the second floor in the buiding in the school in PuDong in ShangHai.

看这个句子,英国人把“旗子”举在哪?最前面。从“is there”这面旗子中可以看出:
句子在问“什么地方有什么”。“is there”表示有一个。 有两个就是“are there”
什么时候有?现在有(现在时)。 过去有就是“were there” 将来有就是“will there be”
所以说英国人把旗子举在前面,一看旗子就知道英国人想说什么

为什么我们的听力很差? 什么原因?农民!!听听力的时候,我们老等那“吗”呢。英国人那“吗”在哪?中国人“吗”在后面,英国人“妈”在前头。学英语最关键就是英国那个魂,它每个句子都举着一面旗子。

所以英国人只要一开口,一说“is there” ——说句不好听的,他们一撅屁股就知道他们想干嘛。英国人写的文章,我都不用看,眼一扫,看三个单词我都知道它要干什么。中国人不一样啊!中国人不到最后不知道他要干什么。英语是一门非常非常简单的语言,所以····
三个句子我讲了两个啦,讲了英语的三分之二。什么是魂——旗子,三面旗子我们讲了两面。
我们要弄明白中国人说话为什么不举“旗子”。中国人说话你分不了,为什么?农民!!农民是不会举“旗子”的。不知道大家下过乡看农民种地吗?我们有没有见过这种情况:老刘早上起来下地时,举着个“老刘”的旗子?老张起来举个“老张”的旗子?——没有,一个村子里谁都认识谁,一共才五米十米地。英国人为什么要举旗子?因为它在海里,海里的船都挂有旗子吧?老远看到旗子,噢 ~~知道这是张家的,知道这是李家的。你看,海里每条船都挂有国旗吧? 中国的船挂着五星红旗。连英国的强盗都举着旗,海盗旗,一个骷髅,两把刀一架。连英国强盗都举着旗子。你见过中国海盗举着旗子去抢东西吗?找死呢!!所以英国人很在乎那面“旗子”。因为它是在海里生存的民族,而我们是在陆地上生存的。这个不一样,它语言也不一样,所以这面旗子非常重要!!

你们试着翻译一下下面这个句子
1.有个从英国来的学生在教室里。
2.每个成功的男人背后都有一个女人。是不是什么地方有什么? 背后(behind)——介词
是不是什么地方有什么?一看什么地方有什么,第一想到的是什么?举什么旗子。介词短语放在哪个名词后面就修饰哪个名词。

1.There is a student from England in the classroom.
2.There is a woman behind every successful man.
什么地方有什么先举“there is” 。
我们到现在学了两面旗子
什么时候举“be(is/am/are)?————什么是什么
什么怎么了
什么在什么地方

第二面“there be”———— 什么地方有什么

最后记住: 介词短语做定语,修饰哪个名词放在哪个名词的后面。
我们再学第三个句子,英语就学完啦。你要是找出第四个,我爬到楼顶上跳下去。

学了六七年都学不明白的英语,一个小时弄得明明白白<四>剩下最后的一个句子,也就是第三个句子,它的“旗子”是“动词(do)”。
这个句子更简单,我们来看:
The students study english.学生们学英语。——这个句子叫主谓宾。
主语是什么?学生(student) 什么是这个句子的灵魂?study
第三个句子就这样学完了!!
你们看这个句子,可以知道,它和中文的说法一模一样:
中文:学生们学英语
英文:Students study english.

中文:我爱你
英文:I love you.

这个句子跟中文一样:主谓宾。

第三个句子咱们为什么犯错误呢?我们来看:
中国人说:学生们学英语。如果要加点修饰成分,就变成:学生们努力学英语。“努力”我们在语法上叫什么?状语——状语是用来修饰动词的。
中文的句子形式是:主状谓宾 英文的句子形式是:主谓宾状

学生们 努力 学 英语 翻译成英文就是: Students study english hard.
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
主语 状语 谓语 宾语 主语 谓语 宾语 状语
咱们把下面这个句子翻译成中文看:

The students study english hard for the test on Sunday in the classroom in the school in Shanghai.
学生们为了考试在上海的一所学校的教室里努力地学英语。
翻译成中文什么特点?它又把重要的放后面去了。咱们关心的是“学生们干什么”,结果中文扯了半天。
而英文怎么样?——Students study english.

以前我见过有人把“学生们学了五年英语”翻译成“ Study five years english student.”——这是“中国人的思维”。注意:英文一定是主谓宾状!!
看上面句子我们知道:英国人先告诉你——学生们学英语(Students study english);怎么学?——hard ;什么时候学?——on Sunday ;为什么学?——for the test;在哪学?——in the school。 明白了吗?非常简单!!

比如:
中国人说:我爱你
英国人说:I love you.
中英文一样,没问题!! 如果我们要加上修饰成分呢?比如一个中国男生跟一个女生表白:
中国人说:我非常非常非常非常非常……爱你(急死她,然后才出来“爱你”)
英国人说:I love you very very very……(你爱怎么very怎么very ,反正我知道你爱我)
你看,中国人怎么样? 它把不重要的放前面,而英国人永远把重要的放前面。这是谁的思维方式?渔民。

所有的社会现象都不难理解,为什么?大家知道金融风暴吧?为什么美国会出现金融风暴?——渔民。渔民为什么出金融风暴?因为渔民总是先吃好吃的,先过好日子,哪怕是借钱也要先过好日子,大家都借钱。好日子过完后,钱还不起了,不就出现金融风暴了吗?我们中国有没有可能出现金融风暴?不可能。我们是农民,把“好日子”都存银行里了,所以我们不可能出现金融风暴。所有的现象都是两个民族的差异造成的。
OK!!我们把三个句子学完啦!!

最后这个句子,是我们用得最多的,我们来看它麻烦在哪?英文最麻烦的就是这面旗子,大家想学好英语就得把旗子弄得滚瓜烂熟……
例如:you study english.什么时?——现在时;
过去时呢?——you studied english;
将来时?——you will study english;
将来还会学到“you are going to study english.”
不知道你们能不能区分什么时候用“ you will study english ”,什么时候用“you are going to study english”?
英国人表示“一定”的时候用“will”,比如:I will study english.——我一定要学英语;
比如“人人都得死”——Everyone will died.

而“be going to”表示“可能,打算”,I’m going to study english.——我打算学英语。
如果你妈让你好好学英语,你回答“I’m going to(我打算),就跟没说一样。
有人要死了,交代后事:替我照顾女儿。你答“I will” ,要是你答“I’m going to”就惨了,听到你这么说,他的眼睛还能闭上吗?
有一个人他爸病了,护士跟他说,你爸不行了:“your father is going to died.” 不能说“your father will died(你爸死定了).”
我们送人经常说:“I will never forget you.”我永远不会把你忘了。你不能说:“I’m going to forget you.”我还不打算把你忘了。

所以想学好这个句子对“动词”一定要熟。英语学那么久,就是学三面“旗子”。

你要滚瓜烂熟: You study english.
You studid english.
You will study english.
You would study english.
You are studing english.
You were studing english.
You will be study english.
You would be study english.
You have studing english.
You had studing english.
You will have……
You would have ……
然后完成进行时: You have been study english.
You had been study english.

每一个时态表示什么样的概念你要弄得清清楚楚。

英语只要你学会三个句子,把“时态”搞清楚,英语就不用学了。
有些同学问我英语从句。我告诉你,只要三个句子没问题,从句就没问题。

我给你们看看英语从句,瞬间就把它弄熟:
I know the teacher.什么意思?——我知道这个老师。这是个什么句子?——主 谓 宾

什么叫做从句? 我把宾语变成一个句子叫什么从句?宾语从句。
比如: I know that he studies english.
I know that he is rich.
I know that there is a wallet on the desk.
看到上面这些句子了吧?都是:主谓宾。 宾语从句是什么?看明白了吗?宾语从句就是大句子里套小句子。小句子是几个?三个,又开始重新排列那三个句子。所谓宾语从句就是把宾语变成句子。只要是句子怎么办? 又是举三面旗子。那么很多人说,这个“that”是干什么的?这个“that” 什么意义都没有。英文用“that”告诉你:从句开始啦!!多好啊!!它提醒你从句开始啦!!小心,三个句子我又要重新排列啦。你还要给我再举旗子。多简单!!

掌握宾语从句的关键是什么?记住连词。连词有多少个?就这么几个:
人不知道用什么?用“who”
东西不知道用什么?用“what”
时间不知道用“when”
地点不知道用“where”
原因不知道用什么?用“Why”
连词就只有上面这些!! 英国人把连词放哪?放在从句的开始。举例:
我不知道你为什么学英语:I don’t know why you studyenglish.
我不知道你什么时候学英语:I don’t know when you studyenglish.
我不知道你在哪学英语:I don’t know where youstudy english.

OK!!就这样,宾语从句就学完啦…… 我们已经把所有宾语从句学完啦。 宾语从句学会了,其它从句就全会了。
表语从句呢?把表语变成一个句子就叫表语从句。举例:
问题(question)是谁学英语?——The question is who study english.
问题是你什么时候学英语?——The question is when you study english.
问题是你在哪学英语?——The question is where youstudy english.

你把句子原封不动放在表语的位置,就叫表语从句。还用学吗?
把一个句子放在主语的位置就叫主语从句。就这么点事……看下面的句子:
The car is what he want.——汽车就是他想要的东西。(“主系表”句型。表语是什么?什么东西不知道用什么代替?——what)
看见没有?如果我把主语变成一个句子,叫主语从句。把表语变成一个句子,叫表语从句。

你想要的东西就是我想要的东西。怎么翻译?(东西“what”是不是连词?要把连词放哪?前面)
——You want is what I want.
你的汽车就是我想要的东西——your car is what I want.
这个女孩就是我喜欢的人。(女孩就不能用“what”啦,该用“who”)——The girl is who I like.
他喜欢的那个人就是我喜欢的那个人。Who he loves is who I love.
假如你追一个女孩,她不喜欢你,你说:你去哪我就去哪。——where you will go is where I will go.

你只要遵循三个句子,所有从句全会!!
定语从句就是把定语变成一个句子。前面说了,我们把定语放在哪里?修饰哪个名词放在哪个名词后面,我们把这个地方变成一个句子就OK了。
咱们来看:
这是教我们的(定语)老师。——This is the teacher who teaches us.(“主谓宾”句型)
首先,这个人是老师 who是什么?——主语 Teaches——教 大句子里套着一个小句子

如果定语是定人就用“who”,定物就用“what/which”,定时间就用“when” ……这样就全会了。

The person who knows “how” will always have a job.——一个知道怎么做的人将来总会找到工作。
The person 后面跟着什么从句?一看有“who”,名词后面有“who”就知道是“定语从句”

The person who knows “why” will always be his boss. ——一个知道为什么这样做的人将来就是老板。

所以你们学英语别只光会拼命学,光拼命学没用,你要知道为什么这样子,英语是怎么来的,它是一种什么样的思维方式,这样学起来就非常非常简单……
后期继续针对英语进行讲解,欢迎大家继续关注·············

Git常用命令速查

Git常用命令速查

gitgit clone http://..git #复制远程库下来
git remote rm orgin #断开远程库

git init #初始化init
git remote add http://..git #添加远程库连接
git push -u origin master #推送到远程库,第一次加 -u
git pull #拉去远程库更新

ssh-keygen -t rsa -C "email@163.com" #生成ssh key

git log # 日志
git log --graph --pretty=oneline --abbrev-commit #日志,图形化,只显示一行, commit_id缩写
git status #当前状态

git add #添加到暂存去,空文件夹不行
git commit -m "message"

git reset --hard HEAD^ #回退到上个版本, --hard 是强制同步修改工作区的文件
git reflog #版本操作的编号
git reset --hard <comond_id> #版本回退后还能恢复

git reset HEAD <file> #从暂存区移除文件
git checkout -- <file> #撤销工作区文件的修改


git branch -b dev #新建并切换到dev分支
git branch dev #新建dev分支
git checkout dev #切换到dev分支

git branch -d dev 删除dev分支

git merge --no-ff -m "message" dev #合并分支dev到当前 带no-ff,删除分支后依然可以看到log历史记录


git stash #保存现场
git stash -u #强制保存现场,包括未add追踪的文件
git stash pop #恢复现场,并删除stash的记录
git stash list #查看stash


git tag v0.1 #创建标签,默认HEAD
git tag v0.2 354qwe4 #可指定commit_id来创建
git push origin v0.1 #推送标签到远程
git push origin --tag #推送所有未推送的标签到远程
git tag -d v0.1 #删除标签
git push origin :refs/tags/v0.1 #将删除的标签同步删除到远程


git config --global alias.st status #全局别名,git st = git status
#超强log,别名lg
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset
-%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"



Mac 下使用tree命令

Mac 下使用tree命令

 

tree

在Mac上,使用tree命令生成目录树,查看文件目录,非常直观方便。

首先,用brew来安装tree。

brew install tree

安装过程如下:

[codesyntax lang=”php”]

==> Downloading https://homebrew.bintray.com/bottles/tree-1.7.0.el_capitan.bottle.1.tar.gz

######################################################################## 100.0%

==> Pouring tree-1.7.0.el_capitan.bottle.1.tar.gz

  /usr/local/Cellar/tree/1.7.0: 7 files, 113.1K

[/codesyntax]

安装完成后,使用tree命令查看下效果,-L 表示层级

tree -L 2

上面命令即显示当前目录2层的目录树。

效果如下:

tree2

 

还可以讲目录树保存一下。

tree -L 2 > README.md

 

Mac下MonoDevelop的快捷键记录

Mac下MonoDevelop的快捷键记录

MonoDevelop

记录下Mac下MonoDeveloper快捷键

Window下开发Unity3D,除了Vs无它。

苹果下按键说明如下

  • ⌘——Command ()
  • ⌃ ——Control
  • ⌥——Option (alt)
  • ⇧——Shift
  • ⇪——Caps Lock

跳转:

Command+Y:跳转到声明
Command+L:跳转到具体行
Shift+Command+D:跳转/打开工程文件(VS里面大番茄快速打开文件)Command+上:跳转到文件顶部
Command+下:跳转到文件底部
Command+左:跳转行首
Command+右:跳转行尾
Option+Command+左右方向键:向前/向后转到光标所在位置(这个应该说特别有用)

查找:

Shift+Command+Y:查找所有引用
Command+Y:在文件中查找字符
Shift+Command+F:在所有文件中查找字符

注释:

Command+/:注释/取消注释当前行

编辑:

Command+C:复制
Command+V:粘贴
Command+Z:撤销
Command+X:剪切
Control+K:删除光标后所有当前行内容
Option+上下按键:将当前行向上/向下移动(VS里面Alt+上下按键效果)Option+左右按键:按整个单词切换(VS中Control+左右一样的效果)Option+Delete:删除单词内容

列出了常用的快捷键,自己做个记录,也希望帮助到需要的朋友,如果有更好的MonoDeveloper使用技巧

 

快捷键可以自己修改 Command+,  但是貌似monoDevelop上的设置选项有点少,比如复制当前行  没找到在,可能是unity自带的,版本有点老,你也可以去官方下载最新的

centos+nginx+uwsgi+python+django 部署应用

centos+nginx+uwsgi+python+django 部署应用

写在前面的话

折腾了近两天,终于把python小应用部署到阿里云服务器上了。作为一个运维小白,特记录一下部署过程,以备后续查验。
服务器选的阿里云,这里也有个和本文无关但是心酸的过程。因为以前用过阿里云,后来手机换号了,为了更换手机号简直心塞,整个流程简直死循环。大概是这样的:

 

1.登陆阿里云账号,购买服务器
2.因为购买时候选择的是创建后设置服务器密码,所以购买完第一件事是重置服务器root密码
3.重置密码需要手机验证,但是老手机已经不用了
4.提交工单,申诉说明,客服让提交身份证件,手持身份证照等
5.身份证过期了,审核不通过
6.新身份证还没办下来,估计下个月才能拿到,但是服务器只买了一个月,到时候审核通过服务器也过期了

简直是心塞啊,幸好和客服沟通,可以用驾照代替,就这折腾两天,总算是把手机号给换了,泪奔!

好了,言归正传,开始说部署!

一、系统选的CentOS

看阿里云官方推荐的CentOS,就直接选它了,本来选的是CentOS 6.5 ,结果安装后发现,自带的Python版本是2.6.6,貌似有点旧了,后来又重置了一次系统,换成了CentOS 7.0,自带的Python版本是2.7.5。

在刚发现CentOS6.5自带的Python为2.6.6时,也看了几篇文章,尝试把Python从升级到2.7,但是因为不知道哪里配错的原因,2.7虽然装好了,但是pip一直装不上,算了,只是为了部署个小python项目测试用,就不搞那么麻烦了,直接换成CentOS 7.0吧。

另外除了CentOS,Ubuntu应该也是不错的选择,以后有机会尝试一下。

二、安装nginx和python等相关包

2.1.安装nginx和python

方法很简单,yum搞定(感觉nginx已经自带了python,貌似不用安装python-devel  ???

sudo yum install epel-release

sudo yum install python-devel nginx

先关闭 CentOS的防火墙,防止访问不了,后续再通过开放端口的方式进行细节处理

临时关闭防火墙
sudo systemctl stop firewalld

将 SELinux 设置为宽容模式,方便调试:
sudo setenforce 0

CentOS 7 iptables如何使用http://stackoverflow.com/questions/24756240/

2.2.安装pip

1.通过wget下载py文件

wget https://bootstrap.pypa.io/get-pip.py

2.用python安装

python get-pip.py

wget 下载https文件,如果报错,可以加上–no-check-certificate

2.3.安装django,上传项目文件

目前django的版本是1.9.3

pip install django

pip install Django==1.5 即可安装其他(1.5)版本

上传文件(项目暂时放在root)

scp local_folder remote_username@remote_ip:remote_folder

 

三、 使用  uwsgi 来部署(也可以用gunicorn)

3.1安装uwsgi

pip install uwsgi

3.2启动uwsgi

执行uwsgi命令,启动

uwsgi –http :8001 –chdir /path/to/project –home=/path/to/env –module project.wsgi

–home 指定virtualenv 路径,如果没有可以去掉。project.wsgi 指 project/wsgi.py 文件

理论上这样就可以跑了,这时候访问你的服务器ip如(123.23.23.233:8001),应该可以看到页面的

这时候查看端口占用(netstat -lpnt),会看到0.0.0.0:8001,已经有项目在监听。

3.3简化启动命令

但是这样的命令太长了,我们换一种,写ini文件来配置(或者xml/json/yaml)

在项目目录(/path/to/project)下,新建uwsgi.ini,内容如下:

ss[codesyntax lang=”python”]

[uwsgi]
socket = 127.0.0.1:8001
chdir = /root/python_project/djtest/
wsgi-file = djtest/wsgi.py
touch-reload=/root/python_project/djtest/reload

processes = 2
threads = 4

chmod-socket = 664
chown-socket = root:www-data

[/codesyntax]

 

我们执行以下命令,即可把项目部署到8001端口

uwsgi –ini /root/python_project/djtest/uwsgi.ini

#如果uwsgi无效,试试/path/to/uwsgi 即uwsgi的目录

注意,这里写的是“socket = 127.0.0.1:8001”,这里后面会和nginx关联到。

指定了touch-reload,执行如下命令,即可重新编译,重启应用

touch /root/python_project/djtest/reload

3.4端口占用,杀掉进程

如果端口被占用了,可以杀掉进程:

probably another instance of uWSGI is running on the same address (:8001).
bind(): Address already in use [core/socket.c line 764]

根据端口查找

lsof -i :8001

可以查出

COMMAND PID USER FD TYPE DEVICE             SIZE/OFF NODE NAME
uwsgi  2208
root 4u IPv4 0x53492abadb5c9659 0t0    TCP *:teradataordbms (LISTEN)
uwsgi  2209 root 4u IPv4 0x53492abadb5c9659 0t0    TCP *:teradataordbms (LISTEN)

这时根据 PID 可以用下面的命令 kill 掉相关程序:

sudo kill -9 2208 2209

 

4. 使用supervisor来管理进程

安装 supervisor 软件包

sudo pip install supervisor

生成 supervisor 默认配置文件,比如放在 /etc/supervisord.conf 路径中:

sudo echo_supervisord_conf > /etc/supervisord.conf

打开sup,在底部添加如下配置

[program:djtest]
command=/usr/bin/uwsgi --ini /root/python_project/djtest/uwsgi.ini
directory=/root/python_project/djtest
user=root
startsecs=0
stopwaitsecs=0
autostart=true
autorestart=true

 

command 中写上对应的命令,这样,就可以用 supervisor 来管理了。

 

启动 supervisor
sudo supervisord -c /etc/supervisord.conf

重启 djtest 程序(项目):
sudo supervisorctl -c /etc/supervisord.conf restart
djtest

启动,停止,或重启 supervisor 管理的某个程序 或 所有程序:
sudo supervisorctl -c /etc/supervisord.conf [start|stop|restart] [program-name|all]

 

通过重启程序,也可以实现项目的重新编译,重启生效。

 

5.配置nginx

在/etc/nginx/nginx.conf配置里http下家如下server:

[codesyntax lang="php"]
    server {
        listen      80;
        server_name 123.23.23.233;
        charset     utf-8;

        client_max_body_size 75M;

        location / {
            uwsgi_pass  127.0.0.1:8001;
            include     /etc/nginx/uwsgi_params;
        }
    }
[/codesyntax]

重启nginx即可!

重点:之前以uwsgi的方式启动,外网可以访问(123.23.23.233:8001),但是nginx报错502,通过查看端口(netstat -lpnt)发现,以uwsgi –http :8001…的方式启动,监听的是0.0.0.0:8001,nginx无法转发过去,后直接把uwsgi启动至127.0.0.1:8001,然后nginx里的server配置也是uwsgi_pass 127.0.0.1:8001;可以正常访问了,此时通过ip:8001是不能访问的。

另外,uwsgi_pass可以用 unix:///tmp/zqxt.sock; 项目中uwsgi.ini的socket配置对应,也可以正常工作,但未实验成功。

作为一个运维小白,参考教程,一步一步出错排查,排查出错,总算跑起来了,虽然还有很多漏洞,但是足以欣慰。

参考资料:http://www.ziqiangxuetang.com/django/django-nginx-deploy.html

 

 

aliyun

Android国际化-多语言

Android国际化-多语言

1.  很大程度上,为什么我们能如此方便的实现国际化、分辨率匹配等?

主要就是得益于 Android 中这种独特的资源管理方式。程序员的代码可以不直接和资源发生关系。Android 中,我们通常通过 R 文件提供的索引来间接的引用某一个资源。而如何维护资源索引和真正的资源之间的关系,这个活,却是 Android 系统来做的。

这里面就可以大作文章了不是么?

我说过,最了解用户手机的,不是用户也不是程序员,而是Android操作系统。它最了解用户当前使用的是什么语言,最了解用户当前手机的分辨率是多少,了解电量,了解内存情况…等等。

既然你对自个的情况这么了解,为什么不自己把所有能完成的事情都做了?不要麻烦程序员好吧?好的,所以 Android 在这方面做得非常优秀。

基于这个角度,我们要转换的观念为:有可能,R 文件中的索引,并非是和资源一对一的。例如我们以前认为它就一定是对应了一张图片,对应了一个字符串,对应了一个布局文件。

而很可能,Android 其实会根据用户当前使用的环境对应几套方案:例如本文所讲的主题,从国际化角度,可能对应中文环境方案,英文环境方案?那么,这时候 R 文件对应的这个资源便不确定起来,当我们通过 R 文件调用一个图片资源显示在窗口上时,Android 操作系统会自动根据用户当前的环境,而选用最合适的图片(这个挑选过程却是透明的)。

程序员可以干预的是:英文环境到底对应哪套方案?中文环境对应到底哪套方案?

OK。这就简单了。

2. Android 中要实现国际化比较简单。

字符串国际化:只要在 res 文件夹下新建对应语言的 values 文件夹就好了,

如,英语环境下的,文件夹命名为:values-en

美国英文环境:values-en-rUS

中文环境为:values-zh

大陆地区中文环境: values-zh-cn

在 eclipse 下新建 Android 项目时,会在 res 目录下自动创建一个默认语言环境的文件夹 : values

当某一个资源没有在语言环境的对应的资源集合中找到时,就会使用 values 下的资源。

若某一个语言环境没有在项目中定义语言环境,那么也会使用 values 下的资源。

3. 图片国际化

同理。

在 res 下新建 drawable-zh 文件夹,存放中文环境下的图片

新建 drawable-en 作为英语环境下的图片

在 eclipse 下新建 Android 项目时,会在 res 目录下自动创建三个默认语言环境的文件夹:

drawable-hdpi

drawable-ldpi

drawable-mdpi

分别用于存放高、中。低分辨率的图片。Android 系统会根据手机的分辨率,而自动从不同的对应的某一个文件夹下去加载图片。

同样,它们也可以国际化,命名规则如:

drawable-zh-hdpi

drawable-en-ldpi

drawable-en-rUS-mdpi

使用。在 XML 中需要使用到图片的地方用表达式: @drawable/icon

代码中使用:R.drawable.icon。因为图片资源同样也会在 R 文件中生成一个索引

==================================================================

android多国语言文件夹文件汇总如下:

中文(中国):values-zh-rCN
中文(台湾):values-zh-rTW
中文(香港):values-zh-rHK
英语(美国):values-en-rUS
英语(英国):values-en-rGB
英文(澳大利亚):values-en-rAU
英文(加拿大):values-en-rCA
英文(爱尔兰):values-en-rIE

英文(印度):values-en-rIN
英文(新西兰):values-en-rNZ
英文(新加坡):values-en-rSG
英文(南非):values-en-rZA

阿拉伯文(埃及):values-ar-rEG
阿拉伯文(以色列):values-ar-rIL
保加利亚文:  values-bg-rBG
加泰罗尼亚文:values-ca-rES
捷克文:values-cs-rCZ
丹麦文:values-da-rDK
德文(奥地利):values-de-rAT
德文(瑞士):values-de-rCH
德文(德国):values-de-rDE
德文(列支敦士登):values-de-rLI
希腊文:values-el-rGR
西班牙文(西班牙):values-es-rES
西班牙文(美国):values-es-rUS
芬兰文(芬兰):values-fi-rFI
法文(比利时):values-fr-rBE
法文(加拿大):values-fr-rCA
法文(瑞士):values-fr-rCH
法文(法国):values-fr-rFR
希伯来文:values-iw-rIL
印地文:values-hi-rIN
克罗里亚文:values-hr-rHR
匈牙利文:values-hu-rHU
印度尼西亚文:values-in-rID
意大利文(瑞士):values-it-rCH
意大利文(意大利):values-it-rIT
日文:values-ja-rJP
韩文:values-ko-rKR
立陶宛文:valueslt-rLT
拉脱维亚文:values-lv-rLV
挪威博克马尔文:values-nb-rNO
荷兰文(比利时):values-nl-BE
荷兰文(荷兰):values-nl-rNL
波兰文:values-pl-rPL
葡萄牙文(巴西):values-pt-rBR
葡萄牙文(葡萄牙):values-pt-rPT
罗马尼亚文:values-ro-rRO
俄文:values-ru-rRU
斯洛伐克文:values-sk-rSK
斯洛文尼亚文:values-sl-rSI
塞尔维亚文:values-sr-rRS
瑞典文:values-sv-rSE
泰文:values-th-rTH
塔加洛语:values-tl-rPH
土耳其文:values–r-rTR
乌克兰文:values-uk-rUA
越南文:values-vi-rVN

AndroidStudio 升级配置,不只需要翻墙(Mac)

AndroidStudio 升级配置,不只需要翻墙(Mac)

翻了墙还不能升级AndroidStudio,今天中午下点功夫找找原因

原来还需要在安装包的bin文件夹下studio.vmoptions加上如下配置:
配置如下:
-Djava.net.preferIPv4Stack=true
-Didea.updates.url=http://dl.google.com/android/studio/patches/updates.xml
-Didea.patches.url=http://dl.google.com/android/studio/patches/

或者在 info.plist文件的<key>VMOptions</key> <string>里加上这些配置,也是一样的!

终于升级了,越来越好用了!

Mac下使用dex2jar

Mac下使用dex2jar

1.去http://sourceforge.net/projects/dex2jar/ 下载一个新版本dex2jar.  目前是2.0,下载后文件名dex2jar-2.0.zip

2.可以到这里看看用法:

http://sourceforge.net/p/dex2jar/wiki/Faq/

http://sourceforge.net/p/dex2jar/wiki/UserGuide/

3.解压缩dex2jar-2.0.zip 到文件夹dex2jar-2.0

4.注意修改文件属性为可执行文件:

   chmod +x /home/…/d2j-dex2jar.sh  /home/…/d2j_invoke.sh

5.输入命令

   sudo sh /home/…/dex2jar-version/d2j-dex2jar.sh   /home/…/someApk.apk

6.在命令文件夹下面即可看到someApk.jar文件包

QQ群加群助手web/iOS/Android/二维码

QQ群加群助手web/iOS/Android/二维码

官网地址:http://qun.qq.com/join.html

网页版:

<a target=”_blank” href=”http://shang.qq.com/wpa/qunwpa?idkey=【官网给的你的QQ群的Key】”><img border=”0″ src=”http://pub.idqqimg.com/wpa/images/group.png” alt=”Flash新手营内部学习” title=”Flash新手营内部学习”></a>

iOS:

– (BOOL)joinGroup:(NSString *)groupUin key:(NSString *)key{
NSString *urlStr = [NSString stringWithFormat:@”mqqapi://card/show_pslcard?src_type=internal&version=1&uin=%@&key=%@&card_type=group&source=external”, @”244675613″,@”【官网给的你的QQ群的Key】”];
NSURL *url = [NSURL URLWithString:urlStr];
if([[UIApplication sharedApplication] canOpenURL:url]){
[[UIApplication sharedApplication] openURL:url];
return YES;
}
else return NO;
}

 

Android:

/****************
*
* 发起添加群流程。群号:xxx key 为:【官网给的你的QQ群的Key】
* 调用 joinQQGroup(【官网给的你的QQ群的Key】) 即可发起手Q客户端申请加群
*
* @param key 由官网生成的key
* @return 返回true表示呼起手Q成功,返回fals表示呼起失败
******************/
public boolean joinQQGroup(String key) {
Intent intent = new Intent();
intent.setData(Uri.parse(“mqqopensdkapi://bizAgent/qm/qr?url=http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Ffrom%3Dapp%26p%3Dandroid%26k%3D” + key));
// 此Flag可根据具体产品需要自定义,如设置,则在加群界面按返回,返回手Q主界面,不设置,按返回会返回到呼起产品界面 //intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
try {
startActivity(intent);
return true;
} catch (Exception e) {
// 未安装手Q或安装的版本不支持
return false;
}
}

 

 

不过Android版貌似有个坑爹的地方,跳转到加群页面后,如果用户进行了操作,返回只会返回到QQ主界面,无法返回到自己应用,关键是再点击自己的应用图标  依然打开的是QQ,必须杀掉自己的应用才可以,坑!

 

 

 

 

在Mac上配置adb命令

在Mac上配置adb命令

在Mac上配置adb命令

在Mac OS中使用adb命令时,应进行变量配置,步骤如下:

一、终端中输入 cd ~
二、输入touch .bash_profile 回车

touch:如果没有,则创建文件,如果有,更新一下文件时间

三、输入open -e .bash_profile

open:打开文件

回车后会在TextEdit中打开这个文件(如果未配置过环境变量,应该是个空白文件)。在文件中加如以下内容

export PATH=${PATH}:/Users/xxx/Library/Android/sdk/platform-tools

上面是我的电脑上的路径,请自行修改,其实就是你android sdk的路径