Yan He

He is a Recreator

Page 8


爬坡

2014-08-02 妙峰山

骑行耗时:1小时54分

平均速度:10.64km/h

骑行距离:20.38km

总结:找到放松的感觉,快踩然后停顿,达到既保持速度又能有一瞬间来释放乳酸。不断的更换肌肉群。爬坡的时候时间会被放大,需要精细的控制人体的肌肉和呼吸。
1333.jpg

123.jpg

#2015-4-19 妙峰山

骑行耗时:101分钟

平均速度:12.06km

总结:爬大坡的时候如果能用小齿轮还是要用小齿轮,要找到腿力的负荷点。不能过于依赖高踏频。

View →


The C programming language

书籍(可下载):

The C programming language

C程序设计语言

C程序设计语言课后答案

[转]学习路线:

学好C语言和系统编程。我认为,学好编程有四个方面:语言、算法和数据结构、系统调用和设计。

语言。我可以告诉你C语言有两大主题你要好好学,一个是内存管理,一个是指针!这个世界上90%以上的C/C++出的严重性错误全是和这两个有关。不要看谭浩强的那本书,那本是本烂书。推荐这本书给你《C程序设计语言(第2版·新版)》

算法和数据结构。 我认为,用C语言实现算法和数据结构莫过于最爽的事情。推荐你看这本书——算法:C语言实现(第1~4部分)基础知识、数据结构、排序及搜索(原书第3版),还有那本经典的《算法导论》,视频链接

系统编程。 Windows下推荐两本书——《Windows 程序设计 》和《Windows核心编程》,Unix/Linux下推荐两本书——《Unix高级环境编程》和《Unix网络编程卷1,套接字》《Unix网络编程卷2,进程间通信》尤其是《Unix网络编程》这本书,一通百通,无论Windows还是Unix/Linux,都是一样的。

系统设计。关于设计方面,我全力推荐《Unix编程艺术》,看完以后,你就明白什么是真正的编程文化了。然后,当你看到Windows的Fans的某些言论时,你就知道什么叫一笑了之了。

如果你能在2-3年内精读完这些书,并全部融会贯通,那么你就明白什么是一览众山小的感觉了!我足足花了5年时间才算是真正全部读完这些书的。最后,祝你好运!努力!
from: www.coolshell.cn

硬件学习

建议看看dfrobot网店(http://dfrobot.taobao.com)

入门教程:Arduino零基础学习套装:
(http://item.taobao.com/item.htm?spm=a1z10.5.w4002-3141879741.26.6wNX00&id=36611047231)

进阶教程:DFRobot机械工业出版社联合出品Arduino开发实战指南
...

Continue reading →


I Like

IMG_7343.jpg

我的雷洛853钢架公路车

BmEU175CMAA6896.jpg

希望大家可以来我家玩游戏

程序员1.jpg

喜欢专注写code的感觉

View →


Todo List of 2014

[A]Translate JavaScript(1 - 6)[OK] 2014.3.15 / 2014.7.14 LOL!!!!

1.Enter the ninja[OK]

2.Testing and debugging[OK]

3.Functions are fundamental[OK]

4.Wielding functions[OK]

5.Closing in on closures[OK]

6.Object-orientation with prototypes[OK]

[A]The C programming language[doing] 2014.7.15

1.A Tutorial Introduction

2.Types, Operators and Expressions

3.Control Flow

4.Functions and Program Structure

5.Pointers and Arrays

6.Structures

7.Input and Output

8.The UNIX System Interface

[A]Piano (5 movement)

1.平均律C大调前奏曲[OK]

2.K545第二乐章[OK]

3.BWV1056第二乐章

4.K545第三乐章[OK]

5.K545第一乐章[OK]

要求:熟练

View →


情商培训总结

情商很重要

每个人都希望被关注

叫别人的名字

通过身体是否紧张来识别别人的情绪

脚尖

情绪是可以管理的

1.笑,伸展
2.换环境
3.改变认知,通过假设

要换别人的视角来想问题

目的是让自己性情平复

激励他人

总结:

情绪就是一切,控制情绪,你就控制了你的世界

View →


第六章.原型与面向对象(6.Object-orientation with prototypes)[完成]

翻译 Secrets of the JavaScript Ninja (JavaScript忍者禁术)

第六章.原型与面向对象(6.Object-orientation with prototypes)

本章重点:

1.利用函数实现构造器

2.解释prototyes

3.利用prototypes实现对象的扩展

4.avoiding common gotchas

5.利用inheritace构建classes

看到prototypes你可能会觉得他与object是紧密联系的,但是,再次提醒各位,我们的重点还是function,Prototypes是一种很方便的定义classes的途径,但是它的本质是属于function的特性

总的来说,如果你很明显的在使用prototypes就是在使用一种classical-style形式的面向对象编程和继承的技术。

让我们开始看看如何使用prototypes

6.1 实例化和原型(Instantiation and prototypes)

所有functions都拥有一个属性:prototype,

初始状态中prototype指向一个空的object。

这个属性只是在这个函数被当作构造器来调用的时候,

才有作用,其余的情况下,没啥用。

在第三章中,我们利用关键字new来调用一个函数,这个函数就成为了构造器,

它会产出一个新的对象实例作为他的函数上下文(function context)

鉴于对象实例化这个部分很重要,下面我们详细的讨论一下,以便我们能真正理解这个知识点。

6.1.1 对象实例化(Object instantiation)

通常最简单的一种创建对象的方式如下:

var o = {};

但是这种形式有些缺陷,如果是一个面向对象背景的视角来看,这样做是不便利,并且缺少封装。

JavaScript提供了一种途径,虽然和大多数的语言都不用一一样,例如面向对象阵营中的Java,C++。

JavaScript利用new这个关键字,通过构造器函数来实例化一个对象,

...

Continue reading →


第五章.闭包 (5.Closing in on closures)[完成]

这章写得极为精彩,让我明白了好多以前根本不知道的概念。

闭包是一个神奇的东西,新果说过,闭包就是可以当作鞭子来用,可以打出鞭子头一样的力道。

所谓的函数化这个概念中,闭包是一个很重要并且很精髓的概念。

想要理解函数化编程,就要深刻的理解闭包。

本章重点:

1.闭包的定义,闭包是什么,闭包如何工作

2.利用闭包来实现一些简单的开发

3.利用闭包实现性能上的增强

4.利用闭包实现私有域

5.1 闭包如何工作(How closures work)

问:闭包是什么?

答:简单来说,closure是一块域,这块域是由创建一个function而来,这个function可以访问和操作它的外部的变量

(Simply put, a closure is the scope created when a function is declared that allows the function to access and manipulate variables that are external to that function.)

这个概念最好还是用代码来解释,所以让我们看看5.1这个例子:

Listing 5.1: A simple closuer

var outerValue = 'ninja';  
function outerFunction(){  
    assert(outerValue == 'ninja', "I can see the ninja")  
}  
outerFunction(); 

你可能写过n多次这样的代码,可你竟然没有意识到你在创建闭包(closure)!

你不相信?估计是因为你没有感觉到有任何的惊喜。

因为out value和outer function的作用域是全局域(global scope),而全局域是永远不会消失(自从这个页面被加载就存在了),

另外就算是这个function可以访问outer value,这个特点也没有实用的价值。

所以就算closure已经存在了,它的用处也不明显。

让我们给他加上一点...

Continue reading →


第四章.挥舞函数(4.Wielding functions)[完成]

翻译 Secrets of the JavaScript Ninja (JavaScript忍者禁术)

第四章.挥舞函数(4.Wielding functions)

本章重点:

1.为什么匿名函数如此重要

2.函数中的递归

3.函数可以被引用后再调用

4.如何为函数缓存索引

5.利用函数的能力来实现记忆

6.利用函数上下文

7.处理参数长度

8.判断一个对象是否为函数

在上一章我们了解到函数作为自然类型的对象(first-order objects),并且了解到什么是函数式编程。在本章,我们会利用函数来解决一些问题,也许以后做web开发时候可以用到。

我们展示的例子并不会直接解决你开发中的问题,那岂不成了另一个什么指南之类的书了。

我们知道,本书的本质目的是让你能够真正的了解这门语言的精髓。

4.1 匿名函数(Anonymous functions)

不知道你是否已经熟悉了匿名函数,匿名函数的确是一个十分重要的概念需要我们来理解,如果你还在为JavaScript的忍者头巾而奋斗。他们是是否重要的特点,并且是一个函数化语言的灵魂,例如Scheme

匿名函数通常会被用于后续使用,例如存储一个变量,作为一个对象的方法,用于回调函数(例如timeout或者事件处理)

Listing 4.1: Common examples of using anonymous functions  
window.onload= function(){ assert(true, 'power!');};  
var ninja = {  
    shout: function(){  
        assert(true, "Ninja");  
    }  
}  
ninja.shout();  

setTimeout(function(){ assert(true, 'Forever!')}, 500)

我们将会在本书的后面看到大量的匿名函数,因为是否能将JavaScript使用的很有力量,取决于你是否将它作为...

Continue reading →


第三章.函数是根基(3.Functions are fundamental)[完成]

翻译 Secrets of the JavaScript Ninja (JavaScript忍者禁术)

第三章 函数是根基(3.Functions are fundamental)

本章重点:

1.为什么能够理解函数是如此的重要

2.为什么函数是基本类型对象(first-class objects)

3.函数如何被浏览器调用

4.函数的声明(Delaring functions)

5.函数被调用的秘密

6.函数上下文(The context within a function)

目录链接:http://yannhe.com/secrets-of-the-javascript-ninja-javascript
本文链接:http://yannhe.com/3-functions-are-fundamental
你可能感到很惊讶,为什么当我们讨论JavaScript的根基时是要讨论函数而非对象。

我们当然会关心对象(第六章会针对object),但是前提是讨论一些对象的实质问题。

当我们写JavaScript代码的时候,代码写成什么水平,是写成了平均水平,还是写成了JavaScript忍者水平。

就是取决于你是否真正理解了JavaScript是一门函数式语言(很重要的一语话)

你的水平就是取决于这个认知。

如果你在读本书,你一定不是一个初学者,我们会认为你是拥有很丰富的面向对象的开发经验(当然我们也会在第六争详细的讨论对象的高级概念),

但是真正的理解函数在JavaScript中的意义,是唯一的一件我们可以挥舞的重要武器。

由于函数如此之重要,我们接下来的会花另外两个章节来深入讨论函数在JavaScript中的意义。

值得注意是,在JavaScript中,函数是自然类型的对象(first-class objects)。

这就意味着:

1.函数可以被视为普通对象,就像其他数据的类型一样。

2.函数可以被赋值给任何变量,也可以被声明,还有可以被视为另一个函数的参数。

3.1 函数的独特之处是什么?

3.1.1 为什么JavaScrpit的函数式如此重要?

...

Continue reading →


第二章.测试和debug(2.Testing and debugging)[完成]

翻译 Secrets of the JavaScript Ninja (JavaScript忍者禁术)

第二章 测试和debug(Testing and debugging)

本章重点:
1.测试工具

2.测试技术

3.构建一个测试框架

4.如何测试异步代码

目录链接:http://yannhe.com/secrets-of-the-javascript-ninja-javascript

本文链接:http://yannhe.com/2-testing-and-debugging

由于我们在之后的示例中用到的测试工具很少,几乎就是在用assert函数,所以本章不做详细的翻译了。

首先将assert函数给出,之后的章节用的的assert函数都是在调用此段代码,用的时候请引用下面的assert.js:

(function()  
{  
    document.write("<style>results li.pass { color: green;}results li.fail { color: red;}</style>");  
    document.write("<ul id='results'></ul>");  
    var results;  
    this.assert = function assert(value, desc)  
    {  
        results = results || document.getElementById("results");  
        var li = document.createElement('li');  
        li.className = value ? "pass" : "fail";  
        li.appendChild(document.createTextNode(desc));  
        results.appendChild(li);  
        if (!value)
...

Continue reading →