jayli.github.com
jayli.github.com copied to clipboard
my repo
Bumps [grunt](https://github.com/gruntjs/grunt) from 0.4.5 to 1.5.3. Release notes Sourced from grunt's releases. v1.5.3 Merge pull request #1745 from gruntjs/fix-copy-op 572d79b Patch up race condition in symlink copying. 58016ff Merge pull...
阿里航旅事业部的面试题,此外重点参照 https://github.com/jayli/jayli.github.com/issues/16 #### 1. CSS 盒子模型,绝对定位和相对定位 1)清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法 2)如何保持浮层水平垂直居中 3)position 和 display 的取值和各自的意思和用法 4)样式的层级关系,选择器优先级,样式冲突,以及抽离样式模块怎么写,说出思路,有无实践经验 #### 2. JavaScript 基础 1)JavaScript 里有哪些数据类型,解释清楚 null 和 undefined,解释清楚原始数据类型和引用数据类型。比如讲一下 `1` 和 `Number(1)` 的区别 2)将一下 prototype 是什么东西,原型链的理解,什么时候用 `prototype`...
tensorflow 引用 node 版本的错误 node-pre-gyp info This Node instance does not support builds for N-API version 4 node-pre-gyp info This Node instance does not support builds for N-API version 5...
微不足道的坚持
原文发在[WTP](https://github.com/lifesinger/lifesinger.github.com/issues/198) ---  在你最擅长的专业领域内,可曾有过一件让你骄傲,持续坚持下来的事情?每当别人谈论它时,你总是偷偷窃喜? 我曾经这样勉励我的弟兄们,在满负荷的工作压力面前,总要找到一件有意义、自己感兴趣且擅长的事情,坚持做,是一种解压,更是为了让自己的专业所长,找到有意义的落脚点。分享三件事情,大家共勉 ### 第一件事: 两前年,流火曾经找我聊想搭建一个行业内前端社区,他有清爽的界面,有优雅的交互体验,我当时并不看好,担心接下来的工作压力会让人抗不住,两年过去了,在百度搜索f2e可以在显要位置看到这个极简的域名"[f2e.im](http://f2e.im)"。社区雏形完整,代码完全开源,我也很幸运成为F2E社区[第三号成员](http://f2e.im/u/jayli)。 我当然听到过太多质疑的声音,诸如"这东东和某东东很类似?",或者"这里菜鸟太多了,没有我想要的高手?"云云。 Whatever!~ 评论终将归于浮云,留下的是两年的坚持,以及它换来的微不足道的满足感!同样,当流火在解决了成百上千个无关紧要又繁琐冗碎的bugfix时,换来了对python的精通,对代码版本迭代的专业性把握,对网络协议和内容渲染模式的深刻理解,收获了直面一线用户的宝贵经验,更重要的是,懂得坚持的意义。这些硬技能直接促成了今天流火在业务上的钻研与精通。 ### 第二件事: 前年年底,我们团队发起了针对校招同学的"[魔鬼训练营](http://wiki.ued.taobao.net/doku.php?id=ued.bj:f2e:%E9%AD%94%E9%AC%BC%E8%AE%AD%E7%BB%83%E8%90%A5)",宗旨是艰苦一年,主动成长,我们无条件的侵占了大家的加班、午餐、晚餐、甚至周末时间。工作的紧张压力下,还要准备给大家反讲,质量良心保证,精力严重透支,要不是靠着年轻的身子板,扛下来简直是个奇迹。 迟伤、影逸、夕剑 全程坚持了下来。 当年反讲的JavaScript设计模式、熟读W3C标准、NodeJS、Git、字符编码、HTTP协议这些基础知识,让充电加速。现在当面对业务压力和未知bug时,他们显然更勇于去透过表面看本质。并在 WebRocket(@影逸)、机票YUI体系的KISSY化(@迟伤)等项目中淋漓紧致的体现出自身专业水平。毕业一年,无压力的开始挑大梁了。 回想起来,魔鬼训练营中辛苦的坚持,是如此微不足道。 ### 第三件事: 两年前,我作为PM落地了一件看似不可能完成的任务,[JavaScript权威指南(第六版)](http://ued.taobao.com/javascript/)的翻译。认领这个任务的初衷仅仅是想挑战下自己的能力极限,看清楚自己几斤几两,没想到一做就是一年。 这段时间在工作和业余时间谨慎的保持平衡,压力面前各种放弃的冲动仍历历在目,但仍抵不过这本书上市之时的那股满足感。 过程中听到太多质疑的声音,WhatEver,你所掌握关于JavaScript的一切,始终是我的子集。纯技能上的收获更是大大的丰厚。 ### 结语 任何一件事情,有多大投入,就有多大收获。当你还是局内人时,不清楚傻傻的坚持的意义,这时内心的纠结最容易让人动摇和放弃。但事成之日,才会真正拨云见月,一树百获。这时,压力是浮云,纠结是浮云,抱怨是浮云,斤斤计较更是浮云。“坚持到胜利”,是如此言轻,又是如此言重。 在你最擅长的领域内,可曾有过让你骄傲,持续坚持下来的事情?每当别人谈论它时,你总是偷偷窃喜?那么。。。 ---EOF---
 爱梦想、去旅行,淘宝旅行无线H5团队招募ing ### 1. 我们是谁? 航旅事业部H5团队,一群年轻、执着、爱旅行的小伙子(和小美女)们,站在无线 All In 战场最前线,用微不足道的力量推动淘宝旅行无线 Web 的技术和业务的革新。 ### 2. 我们在做什么? 我们执着的保持对技术美学追求,你将会和我们一同体验 Web 技术的跨终端服务化、Hybrid化 和 强弱网无差别化: 1. 我们正在推动淘宝旅行无线(H5)产品的服务化和插件化,特别旅行类目商品工具化和个性化的玩法,为我们带来不一样的想象空间。 2. 我们正有机会推动集团Bu多端 Hybrid 混合式编程的落地,航旅H5将在钱包App容器、航旅App容器和手淘App容器中具备更强的生存能力。 3. 我们正在挑战2G、3G弱网下Web体验的忍耐极限。 ### 3. 我们需要......
我是[阿里旅行](http://www.alitrip.com)前端 TL 拔赤,这是一封前端工程师招募贴,长时间有效。 ### Who Are We? 距上次发[英雄帖](https://github.com/jayli/jayli.github.com/issues/11)招募将近一年时间了,这一年,“淘宝旅行”变身成了“阿里旅行·去啊”,小伙伴们一起经历了惊心动魄的无线All In,业务激增、人也在蜕变。  ### What Are We Doing? 这一年,航旅晋升为事业群,有了自己新的品牌,更重要的,随着业务的升级,我们在无线 Web 技术和 Native 之融合领域,也有了大跨步的突破,特别在 [H5 离线化](http://www.atatech.org/articles/26833)和 [H5 弱网秒出](http://yunpan.alibaba-inc.com/share/link/41JmEJbXd) 上坚持前行,并有了大量技术产出。 我们打造了自己的项目构建工具 [Clam](http://clam.alitrip.net),投入研发 [KISSY mini](http://m.kissyui.com) 的后续版本,持续参与[去啊...
N.C.Zakas是我最佩服的前端工程师,他是很多人的励志榜样。他那本经典的“红宝书”和“猫头鹰”书,伴随很多前端工程师一起成长。他身上的这种务实的技术风格让人倍感亲切,这本“[乌龟书](http://jayli.github.io/maintainable.javascript/)”是他最新的作品,是他在Yahoo工作期间最精华的积累,不仅从技术的普适性角度,还是从人的成长角度,NC.Zakas 不仅从技术层面给予我莫大启发,在从一名独行侠到团队精英的蜕变过程中,也让人看到他勤勉务实的可贵精神,我想正是这种精神,趋势着他在充满变化的前端技术领域保持优势,也正是我们身边的大多数(包括我)所或缺的一种。这本书经过五个月的翻译,中文版已经出版,这里我把译序分享出来,我想,作为前端工程师,这本书是最不应当错过的吧。  --- ### 译者序 在我的编程生涯中,曾遇到过各种各样的开发者,他们的编程风格天马行空,有时甚至让人哭笑不得。有一种风格被称为“霰弹枪编程”,例如某个方法调用出错 了,我尝试将参数0改为’0′、NaN甚至false,直到试出能“正确”运行的参数为止。当你和这种人组成团队一起编程时,你会发现你的智商变得很低。 比“霰弹枪编程”更温柔一点的编程方式是“撞大运编程”,就是我根本看不懂程序到底在干嘛,但确实能正常运行,这往往是因为这些程序中有很多错误成对 出现,于是就负负得正,看起来就正确了,这种程序实在是“动弹不得”,只能重构。当你和这种人组成团队时,上帝都会同情你。 当然,当渐渐意识到这类随意编程风格带来的危害时,很多人开始思考什么才是“好”的编程风格。不少人开始向高手学习,尽管有时并不知道高手为什么要把 代码写成这个样子。于是越来越多的hack代码出现了,那些看起来晦涩难懂、短小精悍却又暂时行之有效的代码片段越来越流行,尤其是在处理浏览器兼容性问 题时,这种情况更甚。有些人会在这些hack代码片段旁边打上记号,以便以后有问题时能留意到此。这时,问题又出现了,不同人做记号的方法又不一样,我的 天哪! 如果你自诩为一名有能力有良知的程序员,遇到这种“烂”代码时往往将之重构,为了修改几个拼写错误的bug,而修改10个类,并且重构与这10个类有 关联的另外20个类,甚至修改了打包脚本以及部署配置文件。这就是一种有着代码洁癖的人很“青睐”的编程风格—“屠宰式编程”。 霰弹枪式、撞大运式、不求甚解式、屠宰式…… 编程是一项复杂的工程,却又如此充满喜感,让人又爱又恨。但有一点确定无疑,即这些风格因为缺少基本的约束,会导致团队协作效率低下,甚至影响产品的 存亡。而对于Web开发领域最为流行却有着先天设计缺陷的语言JavaScript来说,情况更加糟糕。一直以来都缺少宏观的设计模式和微观的编程风格的 指导,从而导致JavaScript编程始终没有权威和统一的指导思想和方法论。因此,大部分Web前端团队依然将很大精力放在解决注入代码冲突、命名规 范性、代码复用模式等团队编程最基本的问题上。迟迟走不上创新、高效的快车道。 我们很欣喜地看到,在设计模式领域,《JavaScript设计模式》(JavaScript Design Patterns)和《JavaScript编程模式》(JavaScript Patterns)两本书填补了这方面的空白,而在编程风格领域,这本《编写可维护的JavaScript》(Maintainable JavaScript)真可谓姗姗来迟。 本书正是向开发人员阐述如何在团队开发中编写高可维护的JavaScript代码,涵盖了编码风格、编程技巧、自动化、测试等几方面,不过,同样的原 则也适用于其他任何语言。本书作者是大名鼎鼎的Nicholas C. Zakas。他曾是Yahoo!的首席前端开发工程师,在完成了从一名独行侠到团队精英的蜕变后,他站在前端工程师的角度为我们提炼出许多的最佳编程实...
type coercion翻译成强制类型转换机制,个人认为有些不够贴切。 java等静态类型语言里面有强制类型转化机制和自动类型转换机制,分别又称为显示类型转换和隐式类型转换。 语法是这样的,例如: double d = 1;(隐式) int i = (double)1.0;(显示) 我看了一下英文版的原文,截图如下:  基于JavaScript是一种弱类型的语言,我觉得翻译成“类型强制转换”或许更好一些。