女儿上小学了

25 | 08 | 2014

今天是2014年8月25日,女儿正式成为一名小学生啦!在此记录一下,对女儿的成长又进入了一个关键暑期而祝贺!

说真的,一说到上小学,我们俩还是有很多担心的,我在外地工作,离家远,平时只能老婆一人忙里忙外,我妈身体又不好,只能在老家安心休养,所以我们俩有很多不安。

不过,今天一天下来,感觉心中的石头完全放下来了,女儿很喜欢小学生活,今天表现得异常兴奋,我们这当家长的也跟着兴奋,忙着送孩子、接孩子、做饭、送孩子、接孩子,一天好忙好充实。在我发此文的同时,楼上的一帮小学生们(宇轩、雨希、妮妮、佳锐、我女儿)还在我家玩得正在兴头上呢。

希望孩子们以后都能像今天这样,快乐无忧,健康成长!

jinsanwps

WPS Office 2014 去广告版免费下载

14 | 08 | 2014

WPS是国产软件中比较受欢迎的办公软件,其功能越来越向微软的Office逼近,虽然还有很长的路要走,但WPS Office文件小、免费下载和使用使得软件赢得了不少用户,但新版本的WPS Office是带广告的,用起来会很别扭,不然人家一直免费怎么可能生存下去呢,如果不嫌麻烦的同学,就用带广告的吧,就算是对金山公司的支持了。

点击下载 WPS Office 2014去广告版

适合驾车聆听的十首抒情英文歌曲[经典]

适合驾车聆听的十首抒情英文歌曲[经典]

27 | 07 | 2014

对于很多喜好自驾游出行的车主,好听的车载音乐是必不可少的;这十首英文歌曲都是平时自己非常喜欢听的,值得推荐一下,如果觉得不错,请支持一下。希望优美的歌声能使大家开心每一天。。。。。

http://lisizhang.com/wp-content/uploads/2014/07/070120Aaz.jpg

第十名:M2M – The day you went away★★★
http://www.autisticthai.org/12-TheDayYouWentAway-M2M.mp3
王心凌‘第一次爱的人’的英文版。清新可爱的邻家女孩唱著绵密的青春心情日记,来自挪威的窈窕美眉M2M的亲和力总是不著痕迹的拉近与听者的距离。

第九名:《casablanca》★★★★
http://www.czis.com.cn/channel/english/englishsong/englishsong1/song/song20.mp3
贝蒂·希金斯以诗人歌手独一无二的沙哑而不失细腻的嗓音,如自由不羁的云,飘荡于缈缈空中。。。。

第八名:《LONELY》NANA★★★★
http://www.czesx.com/ljz/IMAGES/downloads/lonely.mp3
我们孤独,似乎拥有很多朋友,可是,夜深人静,一人独处的时候,又有谁可以依靠与倾诉,因为我们都是孤独的灵魂……这首LONELY是NANA最有名的作品,也是最感人的作品。LONELY是全球点击率最高的一首歌曲,震撼心灵的不朽之作!!

第七名:《THE_ONE_YOU_LOVE》Paulina Rubio★★★★
http://www.zq.net.cn/Music/UploadFiles_7693/200607/THE_ONE_YOU_LOVE.mp3
爱 一个人是幸福的;被一个人爱也是幸福的。但是造化弄人,爱你的人往往不是你爱的人,如果必须选择的话,你会选择爱你的人,还是你爱的人呢?这首你爱的人 (The one you love)就是描述一个在爱与被爱之间挣扎的女孩。为情所困的朋友们,听听这首歌吧,也许能给你一点启示。

第六名:《Beautiful Scandal》★★★★
http://www.tigerballonline.net/mp3/beautiful_scandelous_night.mp3
当人微醉,灯还亮,夜未央。轻踩油门,让车滑过开始沉寂的街道,滑过路旁游动的身影,我想,此时此刻,没有哪首歌能比它更让你陶醉的。

第五名:《only time enya》★★★★
http://www.xuanlove.com/video/enya.mp3
爱尔兰女神Enya,经典中的经典,当一切荡涤消逝,惟有时光不变。华灯初上的夜晚,你行驶在都市的大街小巷,打开车窗望着窗外,让这首歌随着你的视线轻轻流淌,这时候,你一定会在心里对自己说:“多么美好的世界啊!”

第四名:《Rhythm of the Rain》★★★★
http://www.pdjiaoyu.com/uploads/media/200910/3162_30102121.mp3
是我很喜欢的一首经典的老歌。中文名字是《雨中的旋律》。瀑布乐团(The Cascades)因这一首《雨的旋律》而留在人们记忆深处。
因为绿箭想起了这首歌,因为这首歌记住了绿箭!~

第三名:《Mariah Carey-Without You》★★★★
http://27.media.v4.skyrock.net/music/27c/269/27c2699d5e2a2ca8e48392714556ce78.mp3
《Without You》是花蝴蝶Mariah Carey的招牌歌曲,是一首能够充分展示她海豚音花腔的经典作品,也是让她能从此享誉世界的歌。

第二名:《I want it that way 》backstreet boys ★★★★
http://image.tudou.com/vivian/homepage/game/tgame/i%20want%20it%20that%20way.mp3
《I Want It That Way》是后街男孩在99年5月推出,排上了英国单曲排行榜的首位,这首歌在美国也是一首经久不衰的最受欢迎的排前10名的歌曲。很好听!!

第一名:《bressanone》布列瑟农★★★★★
http://www.sclz-l-tax.gov.cn/my/music/bressanon.mp3
是 本人认为世上最经典的一首英文歌曲,超级喜欢!隐约的钟声,仿佛来自遥远的地方,那是乡村教堂在夕阳西下轻轻敲响的钟声吗?可以使人想到安详的钟声啊,你 是怎样的在我的心田里轻轻摇荡,钢琴声缓缓地流出了忧伤;一个沧桑无奈的男人站在星空下轻唱,淡淡的哀伤也许更痛彻心扉;浑厚的男音在舒缓地吟唱着无奈的 离乡曲,使人透过那带着怀念的声音体味到一颗流浪在外的心,是怎样地在怀想着故乡。
苏格兰长笛带来了沧凉;萨克斯风吹出的不是浪漫是悲伤、是无奈;鼓声一下下象敲在心上;火车远离的声音带着你踏上新的旅程… …

ixslider

响应式 jQuery 滑块插件 – iView Slider

25 | 06 | 2014

iView Slider 是一款优秀的 jQuery 幻灯片滑动展示插件,用于实现文本、图片、视频等各种网页内容的幻灯片滑动展示功能。iView Slider 支持响应式布局,能够很好的运行于平板、手机等触屏设备中。iView Slider 内置35种很炫的过渡效果(Transition Effects),能够帮助你制作出各种各样的滑动效果。

ixslider

View Slider  提供了三种不同形式的加载进度条形式,以生动直观的方式告诉用户下一个滑块还有多久时间加载。iView Slider 提供了如下几种浏览方式:

  • 幻灯片
  • 键盘控制
  • 前后按钮
  • 缩略图

iView Slider 依赖于  jQuery 和 Raphael,提供了简单易用的 API ,能够非常容易的实现漂亮的内容滑动效果,iView Slider 调用的基本示例代码如下:

<script src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="js/raphael-min.js"></script>
<script type="text/javascript" src="js/jquery.easing.js"></script>
<script src="js/iview.js"></script>
<script>
    $(document).ready(function(){
        $('#iview').iView({
            pauseTime: 7000,
            directionNav: false,
            controlNav: true,
            tooltipY: -15
        });
    });
</script>

演示   下载 GitHub

耶鲁大学校长:中国大学是人类文明史上最大的笑话

03 | 06 | 2014

(此文只是转发于网络,对于文章是否出于施密德特之手,还有待验证,但文章内容确实可以引起我们思考,故转发)

曾任耶鲁大学校长的小贝诺施密德特,日前在耶鲁大学学报上公开撰文批判中国大学,引起了美国教育界人士对中国大学的激烈争论。

对中国大学近年来久盛不衰的“做大做强”之风, 施密德特说:“他们以为社会对出类拔萃的要求只是多:课程多,老师多,学生多,校舍多”。“他们的学者退休的意义就是告别糊口的讲台,极少数人对自己的专业还有兴趣,除非有利可图。他们没有属于自己真正意义上的事业。”“而校长的退休,与官员的退休完全一样,他们必须在退休前利用自己权势为子女谋好出路。”“新中国没有一个教育家,而民国时期的教育家灿若星海。” 对于通过中国政府或下属机构“排名”、让中国知名大学跻身“世界百强”的做法,施密德特引用基尔克加德的话说,它们在做“自己屋子里的君主”。“他们把经济上的成功当成教育的成功,他们竟然引以为骄傲,这是人类文明史最大的笑话。”

中国大学近来连续发生师生“血拼”事件,施密德特认为这是大学教育的失败,因为“大学教育解放了人的个性,培养了人的独立精神,它也同时增强了人的集体主义精神,使人更乐意与他人合作,更易于与他人心息相通”,“这种精神应该贯穿于学生之间,师生之间”。“他们计划学术,更是把教研者当鞋匠。难怪他们喜欢自诩为园丁。我们尊重名副其实的园丁,却鄙视一个没有自由思想独立精神的教师。” 中国大学日益严重的“官本位”体制,施密德特也深感担忧,他痛心地说:“宙斯已被赶出天国,权力主宰一切”。 “文科的计划学术,更是权力对于思考的祸害,这已经将中国学者全部利诱成犬儒,他们只能内部恶斗。缺乏批评世道的道德勇气。孔孟之乡竟然充斥着一批不敢有理想的学者。令人失望。”施密德特为此嘲笑中国大学“失去了重点,失去了方向,失去了一贯保持的传统”,“课程价值流失,效率低,浪费大”。 他嘲笑说“很多人还以为自己真的在搞教育,他们参加一些我们会议,我们基本是出于礼貌,他们不获礼遇。” 由于当前经融危机引发的一系列困难,导致大学生就业难。施密德特对此说,“作为教育要为社会服务的最早倡议者,我要说,我们千万不能忘记大学的学院教育不是为了求职,而是为了生活”。 他说大学应该“坚持青年必须用文明人的好奇心去接受知识,根本无需回答它是否对公共事业有用,是否切合实际,是否具备社会价值等”,反之大学教育就会偏离“对知识的忠诚”。 对中国大学的考试作弊、论文抄袭、科研造假等学术腐败,施密德特提出了另一种观察问题的眼光,他说“经验告诉我们,如果政权是腐败的,那么政府部门、社会机构同样会骇人听闻的腐败”。 他还说“中国这一代教育者不值得尊重,尤其是一些知名的教授。” 施密德特认为中国大学不存在真正的学术自由,他说中国大学“对政治的适应,对某些人利益的迎合,损害了大学对智力和真理的追求”。 他提出“大学似乎是孕育自由思想并能最终自由表达思想的最糟糕同时又是最理想的场所”,因此,大学“必须充满历史感”,“必须尊重进化的思想”,“同时,它倾向于把智慧,甚至特别的真理当作一种过程及一种倾向,而不当作供奉于密室、与现实正在发生的难题完全隔绝的一种实体”。他说“一些民办教育,基本是靠人头计算利润的企业。”

wolf

狮子与狼的段子

09 | 04 | 2014

wolf

狮子让一只豹子管理10只狼,并给他们分发食物。豹子领到肉之后,把肉平均分成了11份,自己要了一份,其他给了10只狼。这10只狼都感觉自己分的少,合起伙来跟豹子唱对台戏。虽然一只狼打不过豹子,但10只狼豹子却没法应付了。  豹子灰溜溜的找狮子辞职。狮子说,看我的。

狮子把肉分成了11份,大小不一,自己先挑了最大的一份,然后傲然对其他狼说:你们自己讨论这些肉怎么分。为了争夺到大点的肉,狼群沸腾了,恶狠狠的互相攻击,全然不顾自己连平均的那点肉都没拿到。豹子钦佩的问狮子,这是什么办法?狮子微微一笑,听说过人类的绩效工资吗?……

第二天,狮子依然把肉分成11块,自己却挑走了2块,然后傲然对其他狼说:你们自己讨论这些肉怎么分。10只狼看了看9块肉,飞快的抢夺起来,一口肉,一口曾经的同伴,直到最后留下一只弱小的狼倒在地上奄奄一息。豹子钦佩的问狮子,这是什么办法? 狮子微微一笑,听说过末位淘汰法吗?……

第三天,狮子把肉分成2块,自己却挑走了1块,然后傲然对其他狼说:你们自己讨论这些肉怎么分。群狼争夺起来,最后一只最强壮的狼打败所有狼,大摇大摆的开始享用它的战利品。狼吃饱以后才允许其它狼再来吃,这些狼都成了它的小弟,恭敬的服从它的管理,按照顺序来享用它的残羹。从此狮子只需管理一只狼,只需分配给它食物,其它的再不操心  豹子钦佩的问狮子,这是什么办法?狮子微微一笑,听说过竞争上岗吗?……

第四天,狮子把肉分成5份,自己拿了3份,然后把1份分成9小份,对狼们说:每个都领一小份,我考察你们,最后决定最优秀的可以额外获得那份最大的。然后狼群们迅速拿了各自的那块,各自考虑了一番,有些狼拿出来了自己那份的一部分来给狮子,有只狼把全部都上交给了狮子,却换回来的优秀员工奖励——那块大肉。狮子得到了全部80%的肉。豹子佩服得五体投地,问狮子这是什么计策?  狮子微微一笑,听说过官场规则吗?

最后一天,狮子把肉全占了,然后让狼去吃草。因为之前的竞争,狼群已经无力再战了,于是只逆来顺受。豹子钦佩的问狮子,这是什么办法?狮子微微一笑,听说过和谐社会吗?

离线下载工具 Teleport Pro 1.7 注册码

离线下载工具 Teleport Pro 1.7 注册码

31 | 03 | 2014

好久不玩软件了,今天为大家推荐离线下载工具 Teleport Pro V1.7 最新版注册码一组,希望大家喜欢。

thumb.jpg (500×500)

格式:Name / Serial

lisizhang.com / 1825817537

wisecn.cn / 2026608335

wpbox.cn / 128311726

budidc.com / 297383353

使用方法:网上下载 Teleport Pro V1.7 版本,安装,之后输入本文提供的注册码即可。

touch of the light

逆光飞翔 – 去你的规则,我选我要的人生!

27 | 03 | 2014

好久没看电影了,也许是因为天天忙于生计,也许是因为随波逐流,总之,好久没看这么一部给我带来很大的情感冲击的电影,《逆光飞翔》 (Touch of the light)给我带来了一顿精神的营养大餐,给我们这些在事业上还在苦苦挣扎的人带来了一个内劲十足的青春激励,领着我们对美好的友情、爱情进行了一次回忆和感受。

整个故事发展过程中融入了大量的舞蹈、音乐,这给爱好音乐和舞蹈的观众带了视觉和听觉上的享受!

touch of the light

这部电影,很值得一看!推荐给朋友们!特别是年轻的朋友们!

touch of the light

音乐天分超凡的男孩裕翔(黄裕翔饰)弹得一手好琴,却天生失明。他坚持不参加任何比赛,只希望能拥有像普通人一样的生活。他第一次离家北上念书,遇见热爱跳舞却因故被迫放弃梦想的女孩小洁(张榕容饰)。裕翔能“看见”世界上不被旁人看见的美丽,从未放弃过这个世界。他就像一缕温暖的逆光照进了小洁冰冷的内心,而小洁则带领着裕翔经历了他从未尝试过的冒险。两个看似永不会相交的灵魂,却成为彼此遗失的那份力量。两人身后的那道耀眼的逆光,正温暖着、鼓舞着他们向梦想展翅飞翔。

本片改编自真人真事,男主人公黄裕翔本色演出。女主角则由台北电影节、亚太影展双料影后张榕容饰演,两人延续前作的绝佳默契,演绎了一段好友之间互相鼓励、勇敢逐梦的历程。导演张荣吉凭借此片荣获2012年第49届台湾电影金马奖最佳新导演奖,女主角张榕容荣获2012年第49届台湾电影金马奖最佳女主角提名,男主角黄裕翔荣获2013年第7届亚洲电影大奖最佳新演员提名。

网上有在线观看,无需提供下载。

html-css

优秀的 HTML 和 CSS 代码规范

27 | 03 | 2014

html-css

HTML

语法

  • 用两个空格来代替制表符(tab) — 这是唯一能保证在所有环境下获得一致展现的方法。
  • 嵌套元素应当缩进一次(即两个空格)。
  • 对于属性的定义,确保全部使用双引号,绝不要使用单引号。
  • 不要在自闭和(self-closing)元素的尾部添加斜线 –HTML5 规范中明确说明这是可选的。
  • 不要省略可选的结束标签(closing tag)(例如,</li>或 </body>)。
<!DOCTYPE html>
<html>
  <head>
    <title>Page title</title>
  </head>
  <body>
    <img src="images/company-logo.png" alt="Company">
    <h1 class="hello-world">Hello, world!</h1>
  </body>
</html>

HTML5 doctype

为每个 HTML 页面的第一行添加标准模(standard mode)式的声明,这样能够确保在每个浏览器中拥有一致的展现。

<!DOCTYPE html>
<html>
  <head>
  </head>
</html>

语言属性

根据 HTML5 规范:

强烈建议为 html 根元素指定 lang 属性,从而为文档设置正确的语言。这将有助于语音合成工具确定其所应该采用的发音,有助于翻译工具确定其翻译时所应遵守的规则等等。

更多关于 lang 属性的知识可以从 此规范 中了解。

这里列出了语言代码表

<html lang="en-us">
  <!-- ... -->
</html>

IE 兼容模式

IE 支持通过特定的 <meta> 标签来确定绘制当前页面所应该采用的 IE 版本。除非有强烈的特殊需求,否则最好是设置为edge mode,从而通知 IE 采用其所支持的最新的模式。

阅读这篇 stack overflow 上的文章可以获得更多有用的信息。

<meta http-equiv="X-UA-Compatible" content="IE=Edge">

字符编码

通过明确声明字符编码,能够确保浏览器快速并容易的判断页面内容的渲染方式。这样做的好处是,可以避免在 HTML 中使用字符实体标记(character entity),从而全部与文档编码一致(一般采用 UTF-8 编码)。

<head>
  <meta charset="UTF-8">
</head>

引入 CSS 和 JavaScript 文件

根据 HTML5 规范,在引入 CSS 和 JavaScript 文件时一般不需要指定 type 属性,因为 text/css 和 text/javascript分别是它们的默认值。

HTML5 spec links

<!-- External CSS -->
<link rel="stylesheet" href="code-guide.css">

<!-- In-document CSS -->
<style>
  /* ... */
</style>

<!-- JavaScript -->
<script src="code-guide.js"></script>

实用为王

尽量遵循 HTML 标准和语义,但是不要以牺牲实用性为代价。任何时候都要尽量使用最少的标签并保持最小的复杂度。

属性顺序

HTML 属性应当按照以下给出的顺序依次排列,确保代码的易读性。

  • class
  • idname
  • data-*
  • srcfortypehref
  • titlealt
  • aria-*role

class 用于标识高度可复用组件,因此应该排在首位。id 用于标识具体组件,应当谨慎使用(例如,页面内的书签),因此排在第二位。

<a class="..." id="..." data-modal="toggle" href="#">
  Example link
</a>

<input class="form-control" type="text">

<img src="..." alt="...">

布尔(boolean)型属性

布尔型属性可以在声明时不赋值。XHTML 规范要求为其赋值,但是 HTML5 规范不需要。

更多信息请参考 WhatWG section on boolean attributes

元素的布尔型属性如果有值,就是 true,如果没有值,就是 false。

如果一定要为其赋值的话,请参考 WhatWG 规范:

如果属性存在,其值必须是空字符串或 [...] 属性的规范名称,并且不要再收尾添加空白符。

简单来说,就是不用赋值。

<input type="text" disabled>

<input type="checkbox" value="1" checked>

<select>
  <option value="1" selected>1</option>
</select>

减少标签的数量

编写 HTML 代码时,尽量避免多余的父元素。很多时候,这需要迭代和重构来实现。请看下面的案例:

<!-- Not so great -->
<span class="avatar">
  <img src="...">
</span>

<!-- Better -->
<img class="avatar" src="...">

JavaScript 生成的标签

通过 JavaScript 生成的标签让内容变得不易查找、编辑,并且降低性能。能避免时尽量避免。

CSS

语法

  • 用两个空格来代替制表符(tab) — 这是唯一能保证在所有环境下获得一致展现的方法。
  • 为选择器分组时,将单独的选择器单独放在一行。
  • 为了代码的易读性,在每个声明块的左花括号前添加一个空格。
  • 声明块的右花括号应当单独成行。
  • 每条声明语句的 : 后应该插入一个空格。
  • 为了获得更准确的错误报告,每条声明都应该独占一行。
  • 所有声明语句都应当以分号结尾。最后一条声明语句后面的分号是可选的,但是,如果省略这个分号,你的代码可能更易出错。
  • 对于以逗号分隔的属性值,每个逗号后面都应该插入一个空格(例如,box-shadow)。
  • 不要在 rgb()rgba()hsl()hsla() 或 rect()值的内部的逗号后面插入空格。这样利于从多个属性值(既加逗号也加空格)中区分多个颜色值(只加逗号,不加空格)。
  • 对于属性值或颜色参数,省略小于 1 的小数前面的 0 (例如,.5 代替 0.5-.5px 代替 -0.5px)。
  • 十六进制值应该全部小写,例如,#fff。在扫描文档时,小写字符易于分辨,因为他们的形式更易于区分。
  • 尽量使用简写形式的十六进制值,例如,用 #fff 代替#ffffff
  • 为选择器中的属性添加双引号,例如,input[type="text"]只有在某些情况下是可选的,但是,为了代码的一致性,建议都加上双引号。
  • 避免为 0 值指定单位,例如,用 margin: 0; 代替margin: 0px;

对于这里用到的术语有疑问吗?请参考 Wikipedia 上的syntax section of the Cascading Style Sheets article

/* Bad CSS */
.selector, .selector-secondary, .selector[type=text] {
  padding:15px;
  margin:0px 0px 15px;
  background-color:rgba(0, 0, 0, 0.5);
  box-shadow:0px 1px 2px #CCC,inset 0 1px 0 #FFFFFF
}

/* Good CSS */
.selector,
.selector-secondary,
.selector[type="text"] {
  padding: 15px;
  margin-bottom: 15px;
  background-color: rgba(0,0,0,.5);
  box-shadow: 0 1px 2px #ccc, inset 0 1px 0 #fff;
}

声明顺序

相关的属性声明应当归为一组,并按照下面的顺序排列:

  1. Positioning
  2. Box model
  3. Typographic
  4. Visual

由于定位(positioning)可以从正常的文档流中移除元素,并且还能覆盖盒模型(box model)相关的样式,因此排在首位。盒模型排在第二位,因为它决定了组件的尺寸和位置。

其他属性只是影响组件的内部(inside)或者是不影响前两组属性,因此排在后面。

完整的属性列表及其排列顺序请参考 Recess

.declaration-order {
  /* Positioning */
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 100;

  /* Box-model */
  display: block;
  float: right;
  width: 100px;
  height: 100px;

  /* Typography */
  font: normal 13px "Helvetica Neue", sans-serif;
  line-height: 1.5;
  color: #333;
  text-align: center;

  /* Visual */
  background-color: #f5f5f5;
  border: 1px solid #e5e5e5;
  border-radius: 3px;

  /* Misc */
  opacity: 1;
}

不要使用 @import

与 <link> 标签相比,@import 指令要慢很多,不光增加了额外的请求次数,还会导致不可预料的问题。替代办法有以下几种:

  • 使用多个 <link> 元素
  • 通过 Sass 或 Less 类似的 CSS 预处理器将多个 CSS 文件编译为一个文件
  • 通过 Rails、Jekyll 或其他系统中提供过 CSS 文件合并功能

请参考 Steve Souders 的文章了解更多知识。

<!-- Use link elements -->
<link rel="stylesheet" href="core.css">

<!-- Avoid @imports -->
<style>
  @import url("more.css");
</style>

媒体查询(Media query)的位置

将媒体查询放在尽可能相关规则的附近。不要将他们打包放在一个单一样式文件中或者放在文档底部。如果你把他们分开了,将来只会被大家遗忘。下面给出一个典型的实例。

.element { ... }
.element-avatar { ... }
.element-selected { ... }

@media (min-width: 480px) {
  .element { ...}
  .element-avatar { ... }
  .element-selected { ... }
}

带前缀的属性

当使用特定厂商的带有前缀的属性时,通过缩进的方式,让每个属性的值在垂直方向对其,这样便于多行编辑。

在 Textmate 中,使用 Text → Edit Each Line in Selection(⌃⌘A)。在 Sublime Text 2 中,使用 Selection → Add Previous Line (⌃⇧↑) 和 Selection → Add Next Line(⌃⇧↓)。

/* Prefixed properties */
.selector {
  -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.15);
          box-shadow: 0 1px 2px rgba(0,0,0,.15);
}

单行规则声明

对于只包含一条声明的样式,为了易读性和便于快速编辑,建议将语句放在同一行。对于带有多条声明的样式,还是应当将声明分为多行。

这样做的关键因素是为了错误检测 — 例如,CSS 校验器指出在 183 行有语法错误。如果是单行声明,你就不会忽略这个错误;如果是多行声明的话,你就要仔细分析了。

/* Single declarations on one line */
.span1 { width: 60px; }
.span2 { width: 140px; }
.span3 { width: 220px; }

/* Multiple declarations, one per line */
.sprite {
  display: inline-block;
  width: 16px;
  height: 15px;
  background-image: url(../img/sprite.png);
}
.icon           { background-position: 0 0; }
.icon-home      { background-position: 0 -20px; }
.icon-account   { background-position: 0 -40px; }

简写形式的属性声明

在需要显示地设置所有值的情况下,应当尽量限制使用简写形式的属性声明。常见的滥用简写属性声明的情况如下:

  • padding
  • margin
  • font
  • background
  • border
  • border-radius

大部分情况下,我们不需要为简写形式的属性声明指定所有值。例如,HTML 的 heading 元素只需要设置上、下边距(margin)的值,因此,在必要的时候,只需覆盖这两个值就可以。过度使用简写形式的属性声明会导致代码混乱,并且会对属性值带来不必要的覆盖从而引起意外的副作用。

MDN(Mozilla Developer Network)上一片非常好的关于shorthand properties 的文章,对于不太熟悉简写属性声明及其行为的用户很有用。

/* Bad example */
.element {
  margin: 0 0 10px;
  background: red;
  background: url("image.jpg");
  border-radius: 3px 3px 0 0;
}

/* Good example */
.element {
  margin-bottom: 10px;
  background-color: red;
  background-image: url("image.jpg");
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
}

Less 和 Sass 中的嵌套

避免非必要的嵌套。这是因为虽然你可以使用嵌套,但是并不意味着应该使用嵌套。只有在必须将样式限制在父元素内(也就是后代选择器),并且存在多个需要嵌套的元素时才使用嵌套。

// Without nesting
.table > thead > tr > th { … }
.table > thead > tr > td { … }

// With nesting
.table > thead > tr {
  > th { … }
  > td { … }
}

注释

代码是由人编写并维护的。请确保你的代码能够自描述、注释良好并且易于他人理解。好的代码注释能够传达上下文关系和代码目的。不要简单地重申组件或 class 名称。

对于较长的注释,务必书写完整的句子;对于一般性注解,可以书写简洁的短语。

/* Bad example */
/* Modal header */
.modal-header {
  ...
}

/* Good example */
/* Wrapping element for .modal-title and .modal-close */
.modal-header {
  ...
}

class 命名

  • class 名称中只能出现小写字符和破折号(dashe)(不是下划线,也不是驼峰命名法)。破折号应当用于相关 class 的命名(类似于命名空间)(例如,.btn 和.btn-danger)。
  • 避免过度任意的简写。.btn 代表 button,但是 .s 不能表达任何意思。
  • class 名称应当尽可能短,并且意义明确。
  • 使用有意义的名称。使用有组织的或目的明确的名称,不要使用表现形式(presentational)的名称。
  • 基于最近的父 class 或基本(base) class 作为新 class 的前缀。
  • 使用 .js-* class 来标识行为(与样式相对),并且不要将这些 class 包含到 CSS 文件中。

在为 Sass 和 Less 变量命名是也可以参考上面列出的各项规范。

/* Bad example */
.t { ... }
.red { ... }
.header { ... }

/* Good example */
.tweet { ... }
.important { ... }
.tweet-header { ... }

选择器

  • 对于通用元素使用 class ,这样利于渲染性能的优化。
  • 对于经常出现的组件,避免使用属性选择器(例如,[class^="..."])。浏览器的性能会受到这些因素的影响。
  • 选择器要尽可能短,并且尽量限制组成选择器的元素个数,建议不要超过 3 。
  • 只有在必要的时候才将 class 限制在最近的父元素内(也就是后代选择器)(例如,不使用带前缀的 class 时 — 前缀类似于命名空间)。

扩展阅读:

/* Bad example */
span { ... }
.page-container #stream .stream-item .tweet .tweet-header .username { ... }
.avatar { ... }

/* Good example */
.avatar { ... }
.tweet-header .username { ... }
.tweet .avatar { ... }

代码组织

  • 以组件为单位组织代码段。
  • 制定一致的注释规范。
  • 使用一致的空白符将代码分隔成块,这样利于扫描较大的文档。
  • 如果使用了多个 CSS 文件,将其按照组件而非页面的形式分拆,因为页面会被重组,而组件只会被移动。
/*
 * Component section heading
 */

.element { ... }

/*
 * Component section heading
 *
 * Sometimes you need to include optional context for the entire component. Do that up here if it's important enough.
 */

.element { ... }

/* Contextual sub-component or modifer */
.element-heading { ... }

编辑器配置

将你的编辑器按照下面的配置进行设置,以避免常见的代码不一致和差异:

  • 用两个空格代替制表符(soft-tab 即用空格代表 tab 符)。
  • 保存文件时,删除尾部的空白符。
  • 设置文件编码为 UTF-8。
  • 在文件结尾添加一个空白行。

参照文档并将这些配置信息添加到项目的 .editorconfig 文件中。例如:Bootstrap 中的 .editorconfig 实例。更多信息请参考 about EditorConfig

gaokao

教育部将出台技能型和学术性两种高考模型

24 | 03 | 2014

新华社北京3月22日电(记者徐硙、石昊)教育部副部长鲁昕22日在中国发展高层论坛上表示,我国即将出台方案,实现两类人才、两种模式高考。

gaokao

据鲁昕介绍,第一种高考模式是技术技能人才的高考,考试内容为技能加文化知识;第二种高考模式就是现在的高考,学术型人才的高考。技能型人才的高考和学术型人才的高考分开。“在高中阶段,16岁就可以选择你未来发展的模式。当然不管你选择的是什么模式,你都可以实现你的人生目标。”鲁昕说。

“技术技能型有三种人,第一类是工程师,第二类是高级技工,第三类是高素质劳动者。”鲁昕解释说,之前的职业教育只讲技能,随着信息技术的发展和产业升级,技能需以技术为基础。

据统计,近几年来,我国每年从中高等学校进入劳动力市场的毕业生总量约在1700万人左右,高校毕业生就业难和技术技能人才供给不足矛盾已成为短期内新增劳动力就业结构性矛盾的突出表现。“2013年有140万人通过第一种高考方式,进入技术技能类型的教育。这140万学生还有三年毕业,我相信他们一定会找到相当好的工作。”鲁昕说。

Mac OS X Terminal:终端使用教程(转)

Mac OS X Terminal:终端使用教程(转)

20 | 03 | 2014

为什么要使用命令行/如何开启命令行?

  • 许多功能在图形界面不提供,只有通过命令行来实现。
  • Finder会隐藏许多你不太会需要的文件,然而 command line 会允许你访问所有文件。
  • 通过 command line 可以远程访问你的 Mac(利用 SSH)。
  • administrators 用户可以通过 sudo 命令获得 root 用户权限。
  • 通过 command-line script 可以使工作更高效。
  • Terminal(终端)程序可以在“实用工具”里找到。
  • 如果你开启手动输入用户名登陆模式,登陆时在用户名处输入>console 可以直接进入命令行界面。随后你仍然需要登录到一个账户。

 

初识Command Line

  • 许多命令会花费一些时间来执行,然而这中间不会给出任何提示或者进度条。一般结束后会出现一个“用户名$”的标记。如果没有出现,那么说明最后一条命令正在执行。
  • 一条命令包括 Command Name、Options、Arguments、Extras 四个部分,但是后三个部分有时是可选的。Options 部分用-作为前导符。其中许多命令的 Options 部分只包含单个字母,这时可以合并。例如,ls -lAls -l -A是等效的。Arguments 部分用来细化这个命令或指定这个命令具体的实施对象,Extras 部分则用来进一步实现其他功能。
  • 举例:下列命令包含前三个部分,用于删除 Junk 这个程序。
    michelle$ rm -R /Applications/Junk.app
  • 如果你输入了一些错误的命令,系统会返回一些错误信息。但是系统却不会阻止你做傻事(例如删除整个用户文件夹)。

关于 man 命令

虽然有上千条命令,每条命令还有许多可选参数和具体的使用方式,但是你却不需要记住这些命令。你只需要记住一个:man

大多数命令都会包含一个使用指南,会告诉你任何你需要知道的关于这个命令的所有细节,在命令行中输入man command-name 即可获取。例如,你想知道ls这个命令怎么使用,输入man ls即可进入使用指南页面。

使用指南往往很长,所以你可以使用▲(上箭头)或▼(下箭头)来上下移动,使用 来翻页,输入/和关键字来按照关键字搜索,按Q来退出使用指南页面。

那么——如果你连命令名称都不知道怎么办呢?输入man -k和关键字来对整个使用指南数据库进行搜索。

命令行,文件和路径

如果知道如何使用命令是掌握 command line 的第一步,那么第二步就是学习如何在 command line 中使用文件路径。如果你掌握了文件路径,你将会发现这比使用 Finder 更加快捷。

注意

  • command line 工具是大小写敏感的,并且对于文件名,必须包括扩展名。例如,你想找iTunes这个程序,输入itunes是无效的,必须输入iTunes.app
  • Mac OS传统上喜欢使用“文件夹”(folders)这个名称,但是在 command line 中,主要使用“目录”(directory)这个词。这和 UNIX 是一致的。

两种路径:绝对路径和相对路径

  • 绝对路径:完整描述一个文件的位置,总是以斜杠(/)(forward slash)开头。例如/Users/michelle/Public/Drop Box
  • 相对路径:只描述一部分位置信息,它和你在 command line 目前的目录有关。当你打开新的 Terminal 程序时,command line 会话的目录应该是你的 home folder。这时 上面例子文件夹的相对路径写作Public/Drop Box。显然它从当前目录开始。和html类似,你也可以使用两个点(“..”)来代表父目录,这样你就可以用相对路径表示上级或同级目录了。例如你可以输入cd ..甚至cd ../..

切换到其他路径和目录

如果你想将当前 command line 会话切换到其他目录,需要用到三个命令:pwdlscd

  1. pwd的含义是“print working directory”,会显示当前目录的绝对路径。
  2. ls的含义是“list directory contents”,它会列出当前目录的内容。这个命令还有其他参数可选。
  3. cd的含义是“change directory”,它会改变当前目录到你指定的目录。如果你不指定,则会返回你的 home folder。

处理特殊字符

如果目录中有特殊字符(空格,括号,引号,[]!$&*;|),那么直接输入空格会造成系统识别困难,必须使用特殊的语法来表示这些字符。例如上例中,空格前添加反斜杠“”(back slash)即可:cd Punlic/Drop Box/。除了反斜杠,也可以用引号的方法:cd "Public/Drop Box"。

——如果不想手动输入,也可以把文件从 Finder 拖到 Terminal 窗口来创建绝对路径,这会方便一些,因为上面提到的所有特殊字符在拖动后都会自动变成系统可识别的表示方法。其实,更有效率的解决方案是使用 Tab Complete 功能。

Tab Complete 是 command line 中最能给你节省时间的特性之一,利用它的自动完成文件、目录名称功能还可以防止你输入错误。使用cd进入你的 home folder,使用cd P命令,然后按下tab按键。你可能会听到错误音,因为你的 home folder 内有多个 P 开头的文件夹。再按一次tab,Terminal 将会为你列出 P 开头的两个文件夹:Public 和 Pictures。按U,再按tab,Terminal 则会自动为你补全Public/。Tab complete 同样会处理那些特殊字符。注意,这会在末尾保留/符号,大部分时候这没问题,但如果出错,移除多余的/试一试。

另外,鄂化符~(tilde)在command line 中可以代表当前用户的 home folder。例如~/Public/Drop Box/是合法的。

查看隐藏文件

为了简化工作,command line 和 Finder 都会隐藏许多文件和文件夹,这些内容通常是系统需要的。不借助第三方工具让 Finder 显示隐藏文件比较困难,但是在 command line 中却非常简单。首先,许多隐藏文件的隐藏是通过隐藏属性在 Finder 中隐藏的,而 command line 会忽略这些属性,所以这些文件会在 command line 中显示。另外,ls命令会隐藏文件名以.开头的文件,但是这些文件却可以被显示出来,方法是利用-a选项。例如:

michelle$ ls -la

我们还添加了-l选项,目的是控制输出格式。如果你注意输出内容的话,会发现还包括...两项,它们分别表示当前文件夹和父文件夹(如图)。如果你不想显示这两项,只需要把-a改成-A即可。

Terminal ls -la命令

前往其他卷

在 command line 中,系统卷(也称为 root volume)是由开始的一个正斜杠表示的。然而也许听起来不可思议,在 command line 中其他卷看起来就在文件系统中一个叫做 Volumes 的文件夹中。下面的命令清晰地显示出这种逻辑关系:我从我的 home folder 出发,最终前往一个叫 Time Machine 的卷,该卷是外接在 Mac 上的。

bogon:~ renfei$ pwd
/Users/renfei
bogon:~ renfei$ cd /Volumes/
bogon:Volumes renfei$ pwd
/Volumes
bogon:Volumes renfei$ ls
Macintosh SSD      Time Machine
bogon:Volumes renfei$ cd Time Machine/
bogon:Time Machine renfei$ pwd
/Volumes/Time Machine

用Command-Line管理文件

检视文件

有许多基础命令用来定位、检视文件和文件夹,包括catlesswhichfile以及find。别忘了,你可以利用man命令来查阅每个命令的使用指南。

cat

cat是“concatenate”的意思,会按顺序读取文件并输出到 Terminal 窗口,语法为cat后接你需要查看的文件的路径。cat命令也可以用>>来增加文本文件的内容,例如命令cat ../textOne.txt >> textTwo.txt会把 textOne.txt 的内容添加到 textTwo.txt 的结尾。这个>>就属于上一篇提到的“Extras”。

less

这个命令更适合用来查看长文本文件,因为它会允许你查找文本。语法为 less后接文件路径,和cat一样。用less命令打开的文件其实和你查看命令使用指南的时候使用的是一个查看器,所以操作是相同的,同样可以使用▲(上箭头)或▼(下箭头)来上下移动文本,使用 来翻页,输入/和关键字来按照关键字搜索,按Q来退出使用指南页面。除此之外,按V键来使用vi文本编辑器。

which

这个命令会定位某个命令的文件路径。换言之,它会告诉你你执行某个具体命令的时候,在使用哪个文件。语法为which后接某个命令。如图:

终端 which 命令

file

这个命令会尝试根据文件的内容输出文件类型。如果一个文件缺失了扩展名,那么这个命令可能会非常有用。语法为file后接文件路径。如图,此例为一个 PNG 文件,还给出了它的尺寸、颜色数等信息。

终端 file命令

find

这个命令用来根据搜索关键词定位文件路径。 find命令不使用 Spotlight 搜索服务,但是它允许你设置非常具体的搜索条件,以及通配符(稍后介绍)。语法为find后接搜索的起始路径,后接定义搜索的选项,后接搜索内容(包含在引号里)。例如:

Terminal Find 命令

注意

  1. 如果你要搜索根目录,也许你想使用-x选项来避免搜索 /Volumes 文件夹。
  2. 如果想使用 Soptlight 搜索服务,使用mdfind命令后接搜索关键词即可。

使用通配符(Wildcard Characters)

下面是常用的通配符:

  • 星号(*,Asterisk)——代表任何长度的任何字符。例如*.tiff代表所有格式为tiff的文件。
  • 问号(?,Question mark)——代表任何单个字符。例如b?ok匹配 book 但是不匹配 brook。
  • 方括号([],Square brackets)——定义一定范围的字符,例如[Dd]ocument匹配 Document 以及 document;doc[1-9]匹配doc1, doc2, …, doc9。

配合使用上面三种通配符可以大大提高效率。

使用递归命令

简单来说,递归命令可以允许命令不执行于一个特定文件,而是指定的路径下的所有文件。大多数命令包含一个-r或者-R选项,来设定你想递归地执行这个命令。例如下面的例子,展示了添加-Rls命令的执行方式:

Terminal -R选项

编辑文件和文件夹

有许多基础的命令用来编辑文件和文件夹,包括mkdircpmvrmrmdir以及vi。下面我们来简要地介绍一下这些命令。

mkdir

“make diretory”的缩写,用来创建文件夹,语法为mkdir后接新文件夹的目录。可以用-p选项,来一起创建路径中不存在的文件夹(这样你就不用挨层创建了)。

cp

“copy”的缩写,用来把文件从一处复制到另一处。语法为cp后接原始路径,后接目标路径。如果你想复制整个文件夹和所有内容,需要添加-R选项。如果指定的目标路径不含文件名,则 cp 命令会按原名复制。如果指定的目标路径包括文件名,则会复制为你指定的文件名。如果仅指定新文件名,则会在原处以新名称创建文件副本。注意,系统会自动替换同名文件而不出现提示。

mv

“move”的缩写,用来移动文件。语法为mv后接原路径,后接新路径。mv 的指定路径规则和 cp 是一样的(没错,如果仅指定新文件名,它就成了重命名命令)。

rm

“remove”的缩写,会永久删除文件。注意,command-line中没有废纸篓。语法为rm后接文件路径。然而,使用 rm 命令删除的文件有可能可以通过数据恢复工具恢复。如果希望安全删除文件,可以使用srm命令。

rmdir和rm -R

rmdir是“remove directory”的缩写,这个命令会永久删除文件夹。再强调一遍,CLI 中木有废纸篓。语法为rmdir后接希望删除目录的路径。然而,rmdir 命令无法删除含有任何其他文件的文件夹,所以大多数情形下rmdir命令是不适用的。不过,你可以利用rm添加-R选项来删除文件夹及包含的所有文件。

vi

代表“visual”(视觉的),然而这个名称相当具有讽刺意味:vi可能是可视化效果最差的文本编辑器了。然而,vi 是 command line 中最常见的文本编辑器。用vi打开文本文件,只需要输入vi后接文件路径即可。Mac OS X 还提供了nano,一个更加现代的文本编辑器。它也更加方便,例如在底部包含了一个作弊小条(=_=),上面有常用的快捷键列表(你就不用背下来它们了)。然而,vi却有时是默认的文本编辑器,所以掌握vi是很有用的。

less命令类似,vi命令会占用整个 Terminal 空间来显示文件内容。打开后,在“command模式”,vi 会等你输入一些预定义字符来告诉 vi 你想做什么。你也可以使用键盘上的箭头键单纯地浏览文件。你想编辑时,按A开始(会进入编辑模式)。文字会插入到光标处。如果你想保存,需要先退出编辑模式进入 command 模式。方法是按下esc键。回到 command 模式后,按住shift同时按两次Z来保存并退出。如果你不想保存,在 command 模式输入:quit!并按enter
return直接退出。

用Command-Line管理系统

使用su来切换用户

su命令代表“substitute user identity”,允许你在命令行中轻松切换到另一个用户账户。语法为su后接用户的短名称。然后会要求你输入密码(但是输入的时候不会显示)。执行完毕后,命令的前缀会改变,表示你拥有其他用户的权利。你可以利用who -m命令来验证当前登陆的身份。切换后,你会一直保持该用户身份,直至退出 Terminal 或者输入exit命令。

关于sudo的使用

sudo概述

更强大的命令就是sudo,代表“substitute user do”,或者,更恰当地,“super user do”。用sudo执行一个命令会使用 root 账户权限。当然,使用之前需要 administrator 账户(管理员账户)的授权(如输入密码)。

默认情况下,任何管理员账户都可以使用sudo来获取 root 权限,甚至当 root 账户在图形界面被禁用的情况下,sudo依然有效。这个命令是很多情况下我们不得不使用 Terminal 的原因,——同样也是给每个用户管理员身份的危险所在。不过,你可以调整sudo的配置文件,来限制它的使用。

bogon:~ renfei$ cat secret.txt
cat: secret.txt: Permission denied
bogon:~ renfei$ sudo cat secret.txt
Password:
This is the contents of the secret.txt text file that the user account renfei does not normally have access permissions to read. However, because he is an administrative user, she can use the sudo command to envoke root user access and read the contents of this file.

提示:如果由于你忘了使用sudo而导致命令行返回一个错误,只需输入sudo !!就可以用sudo来执行上一条指令。

记住,权力越大责任越大。不恰当地使用sudo可以轻易破坏你的系统设置。命令行只会在你第一次执行严重破坏性行为之前提示你,之后,它就会假设你清楚自己正在干什么。如果你只掌握三条使用命令行的准则,那将是:总是仔细检查你的命令;总是使用Tab completion来帮助你避免拼写错误;使用sudo之前,总是仔仔细细检查你的命令。

使用 sudo 切换 Shell

如果你是一个管理员用户,你需要执行很多条需要 root 权限的命令,你可以临时切换整个命令行 shell 来取得 root 级别的访问权限。方法就是先输入sudo -s,回车后再键入你的密码。

其他Command-Line技巧提示

  • 输入命令open .可以用 Finder 打开当前的位置。
  • 在 Terminal 的偏好里面可以设定它的外观和风格。
  • 中止一个错误的或者发疯的命令,可以使用组合键control + C。
  • 你可以在执行前编辑命令,只需要使用箭头和键盘上的其他字母。
  • 没有输入任何命令时,你可以用▲和▼来浏览历史命令。同样可以编辑和再次执行。
  • 你也可以使用history命令查看历史记录。
  • 你可以使用组合键control + L清屏。

文章转自:http://www.renfei.org/blog/mac-os-x-terminal-101.html

下一页