javascript

掌控 DOM - 它不像你想的那么难

很多开发者认为 DOM 是真的很难(或者很慢)以至于你需要一个巨大的框架才能让它服帖。于是他们投入了大量的时间去学习这些框架。一两年过去了,又一个框架火了于是你不得不扔掉之前的框架从头学起。这样的事情多重复几次就能让你对 JavaScript 产生疲劳,更不用说那多的数不过来的依赖。 如果我告诉你 DOM 其实没那么复杂,你信吗? DOM 并不难并且它也不慢。 创建元素 要创建一个元素,你只需要写 document.createElement(tagName) const h1 = document.createElement('h1') // <h1><

jsconf

参加宁 JS(JSConf CN 2016)的体验

今年的宁 JS 的时间是 9 月 3 号和 4 号,刚好赶上了 G20 放假。此时的杭州已经水深火热,没吃的,没玩的,赶紧逃难吧。 这次活动的地点 南京绿地洲际酒店 签到拿东西 摄像机的脚手架真是讨厌 第一天的战利品 After party 场面控制不住了,有种春运的感觉 这是第一次参加 jsconf,说下感受。 今年的前端主题比较宽泛。让人有点抓不住重点。 从演讲主题内容来看,主要是偏向 测试,

mysql

服务器迁移小记

从 vultr 迁移到 digitalocean 几个月前收到 digitalocean 发来的邮件,说因为我邀请用户注册并达到他的要求,送了我50刀的额度,本来就没想到它能送,结果不久之前它又送了一次,果断让我产生了回到它的怀抱的念头,毕竟现在 vultr 上的日本服务器5刀/月,速度也不太理想,还是绕路,还不如拿去买个迅雷会员。 网站的迁移 迁移主要用到了 scp 命令,当然网站小文件比较多的情况下(例如 node modules),那么最好先打包在远程拷贝,速度会快很多。 scp 命令基本用法 从本地复制到远程 scp

极路由 4

极路由 4 shadowsocks 翻墙实践

自己一直是个挺能折腾的人,2 年前果壳的魔豆路由器刚出来,就入了一个。路由器进入智能时代,可以装 app 了。 这么长时间用下来,实际并没有感受到什么智能,反而感觉路由器重启要花几分钟,太慢了。官方提供的插件挺多的,但是大多是是无关痛痒的,其实我最受用的 app 还是 shadowsocks,然而因为政策原因,后来还下架了,这下真是一点搞头都没有了。 路由器还有一个 USB 口,可以挂载一个硬盘,路由器上装好迅雷远程下载插件,就可以实现异地远程下载了,听上去感觉很不错,实际感受却是路由器时常死机,自动重启,配置还是太弱了,跑不动。 几周前,

react-native

react-native 初体验

去年年初写了一个 chrome 扩展「十阅」后,一直想写个十阅 app 出来,奈何懒癌后期,一直拖到最近才完成原型。 其实很早之前就已经写过一个 hybrid app 了,使用了 Ionic 框架,这是一款使用前端 web 技术来构建 app 的框架。使用了流行的 Angular,使用 Cordova 来使用 native 的功能,最赞的是它有一套优美的设计模板,类似于 bootstrap,通过它你可以轻松实现优雅漂亮的设计。

编辑器

Sublime Text 改造计划

为什么选择 Sublime Text 之前用了很多年的 Intellij Idea ,这是一款重量级的 IDE,功能强大,效率超高,用起来非常爽。 缺点就是启动速度太慢,没有漂亮的皮肤主题。 前端和后端有很大的不同,我不想为了做个小的项目就动用这么重的工具,于是就把视角瞄向了编辑器。 过年期间尝试了不少编辑器,有 github 家的 Atom,当然也少不了 Sublime Text,经过尝试和验证, 因为性能方面的考虑,最终还是选择了 Sublime Text,毕竟收费的产品相对免费的,更有优势。 正如其官网所介绍的: Sublime

个人总结

我的 2015 总结

2015 年,对我来说注定是一个充满改变的一年。 为了改变,离开了毕业后一直工作2年的创业公司,2 月 2 日正式入职 SegmentFault,这是这一年发生的一切的起点。 生活 开始从赶公交上班切换到走路上班模式。 女友摇到了指标,两人凑钱全款买了车。 为了更好的生活质量,找了更大的房子,为了更好的做饭,购买了电冰箱,为了增肥,买了体重计。为了更好的利用房子的空间,购买了储物箱。 总之就是不断的遇到生活的问题,并给予解决。 工作 学习了新技术,requireJS,coffee,sass ,twig ,gulp,nodeJS

firefox

火狐浏览器扩展开发入门指南

给公司的笔记产品开发浏览器扩展,之前写过 Chrome 下的插件『十阅』,对火狐插件开发一无所知。 那么,看官方文档。 创建扩展的方式 火狐有三种创建扩展的方式 附加组件 SDK 扩展(使用一组高级别的 JavaScript APIs 开发无需重启的扩展。) 无须重启的扩展(手动创建无需重启的扩展。) 传统扩展 (使用 overly 的方式创建传统的扩展。) 一开始没仔细看文档,而是找了火狐内置的扩展查看源码进行修改学习,折腾了一上午,发现非常蛋疼(采用的是上面第三种方式),安装扩展需要重启浏览器,删除扩展需要重启浏览器,非常消耗时间和精力,差点精神崩溃。 所以说一定要看文档啊,

chrome

Chrome 开发者工具使用技巧

最近我花了较多的时间使用 Chrome 的开发者工具。我发现了很多之前没用过的好功能 (或还不是特别需要用到的功能,例如 blackboxing 和 asynchronous stacktraces) 。因此我想对我非常喜欢的几个功能做个总结。 小小的放大镜图标告诉你有哪些 CSS 类/选择器 位于哪个 CSS 文件,决定了某个特殊元素的样式和 CSS 的属性。例如,在任意 DOM 元素上右击选择 “审查元素”,切换到 “Computed” 子菜单,可以查找你感兴趣的 CSS 属性并且点击放大镜可以直接定位到的 CSS

稀缺

《稀缺》读书笔记

稀缺心态 贫穷和忙碌并非简单因为缺少金钱和时间,而是一种心态和能力的匮乏。 稀缺会俘获一个人的大脑,使他过于关注稀缺的对象从而失去正常的判断力。 你要什么,不要等急需的时候才去要,而要提前积累。 懒蚂蚁现象 我们的思想会自动而强有力地转向未得到满足的需要。稀缺对人脑的影响,存在于潜意识之中。 稀缺会俘获我们的注意力,并带来一点点好处:更好的应对迫切需求。从长远角度看,损失更大:我们会忽视其它需要关注的事项,在生活的其它方面变得不那么有成效。 专注红利: 无论是工作还是娱乐,只要时间有限,我们会尽量将其利用得淋漓尽致。也即稀缺的积极成果。 佯装稀缺是很难做到的。 稀缺会自动将干扰和诱惑等因素推至一旁,让我们做到凭一己之力很难做成的事情。 管窥心态 管窥负担 :因没有对管窥心态的成本和收益进行评估而产生的心智负担与不利影响。 稀缺会改变我们看待事物的眼光。这会让我们变的更有成效,也会让我们为此付出代价,

avascript

构建前端错误日志系统

为什么要做前端代码异常监控? 如何检测前端异常 try,catch 我们可以通过对代码块加入一个 try,catch 块来获得出错信息。try,catch 能够知道出错的信息,并且也有堆栈信息可以知道在哪个文件第几行第几列发生错误。 但是 try,catch 有 2 个缺点: 无法捕捉 try,catch 块,当前代码块有语法错误,JS解释器不会执行当前这个代码块,所以无法被 catch。 无法捕捉到全局的错误事件,只有 try,catch 里边代码运行出错才会被它捕捉到。 第一个缺点,没有任何解决办法,

chrome

chrome 扩展 十阅 (TenRead)介绍

为何要做这个东西 满足自身需求 之前一直有订阅 rss 的习惯,有博客也有各种聚合站。 博客类的站点更新频率不是特别频繁,但是几个聚合站点,例如 hacker news 等,每日更新内容特别多,每天都看不完。日积月累,一个月下来就要奔溃了,而且很多内容是及时性比较强,到月底再去看已经过时了。 之前发现了一个软件叫 一览,能浏览几个热门网站的精华文章,随时想看就能看到最新的热门文章。于是我把 rss 里面的部分订阅取消,然后用 一览 来解决。 用了一段时间发现,一览体验虽好,但是提供的网站就那么几个,而且不支持添加自定义站点,造成了很大的限制。

ubuntu

如何在 Ubuntu 上安装 LAMP

关于 LAMP LAMP 是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写: Linux,操作系统 Apache,网页服务器 MySQL,数据库管理系统(或者数据库服务器) PHP 下面是安装教程。 1. 安装 Apache Apache 是一款免费的开源软件,世界上超过50%的服务器都运行着它。 安装 apache,只需要打开终端并键入以下命令: sudo apt-get update sudo apt-get install apache2 要检查 Apache 是否被安装,

ubuntu

将 Mac OS X 上的目录挂载到 Linux 的方法

打开mac文件共享功能 开启共享服务 进入系统偏好设置中的共享选项。 勾中文件共享(如下图),之后右边的文件共享的绿灯会点亮,并显示“文件共享:打开”。 添加共享目录 点击在文件共享界面(如下图)中右边的共享文件夹下的+号。 在出现的窗口中找到你要共享的目录,点击增加。 之后在右边的用户里,进行对该目录的访问权限设置。 共享选项设置 AFP是apple的文件共享协议,如果多台mac可以选择 如果共享到windows等非apple的机子,选择smb的win共享协议。 smb协议需要在选项中添加用户,可以到账户哪里新建一个用户,设其角色为共享角色。 将 Mac OS X 目录挂载到 Linux 确保你可以挂载

程序员

关于两个程序员的寓言故事

曾经有一段时间, 由于不知道彼此的存在,"Automated Accounting Applications Association" 和 "Consolidated Computerized Capital Corpora- tion" 决定他们需要一套相同的程序来执行特定的服务。 Automated 雇佣了一名程序员分析师, Alan,来解决他们的问题。 与此同时, Consolidated 决定让一位新雇佣的入门级程序员,Charles,来接手这个工作,看他是否如他自己吹得那样好。 Alan, 曾多次参与困难的编程项目,决定使用 PQR 结构化设计方法。 考虑到这一点,

javascript

JavaScript Promises 初体验

Promise 是什么? Promise 对象用来进行延迟(deferred) 和 异步(asynchronous) 计算。 一个 Promise 处于以下三种状态之一: pending: 初始状态, 非 fulfilled 或 rejected. fulfilled: 成功的操作. rejected: 失败的操作. Promise 接口表示为一个值的代理,这个值在promise创建时未必已知. 它允许你将 handlers 与一个异步 action 最终的成功或失败状态关联起来. 这使得异步方法可以像同步方法那样返回值: 异步方法返回一个在未来某个时刻拥有一个值的 promise

2014

我的 2014

项目0重构与团队扩建 去年做的项目0,由于工期赶,技术弱,人员不足,导致项目越发的难以维护和改进。在和老大的沟通之后,公司决定重构项目和扩充团队。招来几个有经验的后端工程师,也招了几个比我牛逼的前端。 大家对项目都比较看好,团结一致,气氛很好。与于我而言,有了更厉害的同事,可以请教,学习,更是感到欢欣鼓舞。在接下来的日子里,陆陆续续看了很多前端的书籍,例如 javascript权威指南 javascript高级程序设计 javascript 模式设计 等等。 在公司的一次技术分享中,了解了 backbone ,并在项目中进行实践。发现自己对 javascript 的理解实在是太浅薄,