代码改变世界

npm穿墙

2014-04-01 00:03 by Barret李靖, 9318 阅读, 6 推荐, 收藏, 编辑
摘要:GWF 很给力,很多东西都能墙掉,但是把 npm 也纳入黑名单,不知道 GWFer 是怎么想的。FQ翻了好多年了,原理其实也挺简单的,proxy 嘛!»方法一A)国内源,http://cnpmjs.org使用方式,你可以在 cmd 中键入 npm install -g cnpm,然后出去吃个饭,如果还没有安装好,那就换个方式:npm install -g cnpm --registry=http://r.cnpmjs.orgregistry 参数的作用就是指向需要 download 的仓库。 cnpm 跟国外的 npm 是同步的,只要 npm 有更新,cnpm 就会跟着一起更新。当然 阅读全文

百万数据如何在前端快速流畅显示?

2014-03-25 00:54 by Barret李靖, 12639 阅读, 13 推荐, 收藏, 编辑
摘要:如果要在前端呈现大量的数据,一般的策略就是分页。前端要呈现百万数据,这个需求是很少见的,但是展示千条稍微复杂点的数据,这种需求还是比较常见,只要内存够,javascript 肯定是吃得消的,计算几千上万条数据,js 效率根本不在话下,但是 DOM 的渲染浏览器扛不住,CPU 稍微搓点的电脑必然会卡爆。本文的策略是,显示三屏数据,其他的移除 DOM。本文地址:http://www.cnblogs.com/hustskyking/p/million-data-show-in-front-end.html,转载请注明源地址。一、 策略下面是我简单勾画的一个草图,我们把一串数据放到一个容器当中,这串数 阅读全文

[入园两周年,撒花~] 感想以及一些文章索引

2014-03-17 15:02 by Barret李靖, 2255 阅读, 12 推荐, 收藏, 编辑
摘要:接触前端快三年了,记得是在大二的时候开始进博客园写博,三年的成长有两年得益于与各位前辈的交流和讨论。首先感谢博客园给我们提供了很好的交流平台,也祝博客园的建设越来越好!同时也感谢技术上擦过火花的小伙伴们,希望以后的日子里可以更多更深入的交流!一点学习经验以 Barret 这个名字混迹于不少 QQ 群中,时间比较久了,跟一些人也建立了比较好的友谊关系。在群里,不管是提问还是回答别人提出的问题,总能在未知领域找到属于自己的东西。现在还会经常在群里碰到学习前端的新人,他们有时提问抓不到关键词或者不知道如何形容自己的问题,这也让我看到了当初的自己,希望有经验的学习者可以包容这些人,耐心的回答他们提出的 阅读全文

Javascript分号,加还是不加?

2014-03-16 15:51 by Barret李靖, 8424 阅读, 7 推荐, 收藏, 编辑
摘要:关于这个问题,网上已经有很多人讨论过了,我先说说自己对这个问题的回答:加!(但非必须)有些人写代码,懒得加分号,除非是迫不得已才勉强放一个分号上去。如果你可以保证你写的代码不出现任何 bug,那当然是没有问题,但是很多 JSer 新人,对一些隐含的问题并不是特别清楚,很容易在不知不觉中写出一堆 bug,我们先来了解下 JS 词法语法解析的时候,哪些情况下会自动插入分号。一、自动插入分号的规则注:鼠标滑过文字可以看到翻译原文1. 程序从左到右解析,当纳入下一个 token 无法匹配任何语法:如该 token 跟之前的 token 之间有至少一个 LineTerminal 行终结符违反分割该 to 阅读全文

软件(代码)开源,协议声明

2014-03-14 19:52 by Barret李靖, 3586 阅读, 4 推荐, 收藏, 编辑
摘要:注意:对于协议有个大概的了解就行了,本文叙述不是很标准,如果要做具体了解,请戳文中给出的链接。关于开源协议网上有很多说明,不过写的都十分晦涩,让人木有读下去的欲望,下面给大家简单的科普一下。一般很少人关注代码开源的协议说明,我们平时看到的 MIT Apache BSD 等,一堆英文的缩写,也懒得去看具体的内容,这说明你的维权意识还不是很强。辛辛苦苦写了一堆代码,贴到某个分享区,啪一下被人家复制走了,然后别人改个名字,捎带加个协议,说是自己写的,一般情况下这种事情的发生我们可以忽视之,当如果这串代码被人家作为商用,成为挣钱利器,那个时候你后悔也来不及了。目前市面上看到的协议种类还是挺繁多的,同一 阅读全文

工作,但别忘了生活

2014-03-12 15:02 by Barret李靖, 3068 阅读, 7 推荐, 收藏, 编辑
摘要:已经一点多了[昨晚写的],其实我现在挺累的,想去睡个觉,不过有些东西还是需要记录一下。人已经不在学校了,也不想谈太多学校里面的事情,社会和学校之间似乎有一层屏障,把很多东西都分隔开了。我挺喜欢学校,很自由,可以不慌不忙的支配时间。只是有些许内疚,大学没去好好支配时间。最近在看什么呢?《宏观经济学》、《心理学导论》、《税法》,当然也少不了一些技术书籍。这几天发生在我身边的事情让我感觉到,人特别渺小,尤其是缺乏知识的人,跟社会接轨的比较少,当走进社会之后就显得更渺小了。在学校,每个人都期望着找准自己的位置,寻找社会上适合自己的角色,一些人找到了,还有一些人,继续留在学校,他们或许找到了自己的定位, 阅读全文

git/ssh捋不清的几个问题

2014-03-11 23:09 by Barret李靖, 14799 阅读, 3 推荐, 收藏, 编辑
摘要:主要是 windows 用户会遇到很多纠结的问题,linux/unix 用户属于这方面的高端用户,应该有能力处理此类问题,而且网络上也有很多解决方案,本文的授众是 windows 用户。由于今天配置了一下午,虽说配置过程基本搞清楚,懒得重新配置一遍,所以文中皆以文字形式叙述,没有截图。本文地址:http://www.cnblogs.com/hustskyking/p/problems-in-git-when-ssh.html,转载请注明源地址。一、概念的解释1. rsa 与 rsa.pub网上很容易搜到的东西我就不说了,我们知道,通过:ssh-keygen -t rsa -C "so 阅读全文

你所不知道的JavaScript数组

2014-03-03 13:56 by Barret李靖, 12674 阅读, 18 推荐, 收藏, 编辑
摘要:相信每一个 javascript 学习者,都会去了解 JS 的各种基本数据类型,数组就是数据的组合,这是一个很基本也十分简单的概念,他的内容没多少,学好它也不是件难事情。但是本文着重要介绍的并不是我们往常看到的 Array,而是 ArrayBuffer。我写的很多东西都是因为要完成某些特定的功能而刻意总结的,可以算是备忘,本文也是如此!前段时间一直在研究 Web Audio API 以及语音通信相关的知识,内容侧重于音频流在 AudioContext 各个节点之间的流动情况,而现在要摸清楚音频到流底是个什么样的数据格式,所以对 ArrayBuffer 的研究就显得格外重要了。本文地址:http 阅读全文

让你的页面瞬间全屏

2014-03-01 03:11 by Barret李靖, 17166 阅读, 17 推荐, 收藏, 编辑
摘要:@update 文章下方有更新,提到了更多全屏的知识以及错误的矫正。页面全屏是一个体验非常棒的功能,他可以让你的视觉焦点聚集在你想关注的元素块上。很多浏览器都支持全屏,按下 F11,哦了! 页面全屏了~但是本文要说的并不是这种全屏。当页面中有个小 DEMO 或者小游戏要展示的时候,用户期望,这个 DEMO 或者游戏可以在全屏下展示,本文就教你如何来展示。如果你是非 IE 浏览器进入的该页面,你可能已经看到了页面上发生了一点小变化,多个东西:没错,多了个“进入全屏”的按钮,这就是本文要介绍的内容!本文地址:http://www.cnblogs.com/hustskyking/p/javascri 阅读全文

[Voice communications] 声音的滤波

2014-02-28 13:57 by Barret李靖, 4387 阅读, 1 推荐, 收藏, 编辑
摘要:本系列文章主要是介绍 Web Audio API 的相关知识,以及 web语音通信 中会遇到的一些问题,阐述可能存在错误,还请多多斧正!通过设备获取音频流会不可避免的渗入一些杂音,这些杂音可能来自你周边的环境,也有可能来自录音设备本身,一些低频的声音还好,人耳难以分辨出来,但是那些高频的白噪声对音质的影响是特别大的,如我们听收音机没有调到正确的频率上,会听到吱吱兹兹的刺耳的杂音。这些杂音不仅增大了音频流信号本身的体积,而且我们的耳朵也不喜欢,所以在传输之前必须对音频做相应的滤波处理。本文地址:http://www.cnblogs.com/hustskyking/p/webAudio-filte 阅读全文

[Voice communications] 声道的转换

2014-02-27 13:17 by Barret李靖, 2491 阅读, 0 推荐, 收藏, 编辑
摘要:本系列文章主要是介绍 Web Audio API 的相关知识,以及 web语音通信 中会遇到的一些问题,阐述可能存在错误,还请多多斧正!很多粤语剧都提供了两个声道,一个左声道为粤语,一个右声道有国语。观看者可以自由切换声道,那么切换声道的原理是什么呢?在播放器中,只需要把不同的声道切换到声轨就行了,因为有左右两个声道,所以播放器至少是包含两个声轨的。如果我们想听粤语,只需要将右声道声轨的声音设置为 0,或者临时删掉右声道声轨。本文主要是利用 GainNode 节点控制音量的属性实现两个音轨之间的相互切换,Cross-fading 的意思可以在后面的 DEMO 中用耳朵体会出来~本文地址:htt 阅读全文

[Voice communications] 音量的控制

2014-02-26 12:56 by Barret李靖, 3200 阅读, 3 推荐, 收藏, 编辑
摘要:改变音频的音量是音频处理中最基础的部分,我们可以利用 GainNode 来构建 Mixers 的结构块。GainNode 的接口是很简单的:interface GainNode : AudioNode { readonly attribute AudioParam gain;};通过调节 GainNode.gain.value 就可以实现音频大小的调控了。下文会先介绍使用 Processor 来处理,这是一个最通用的节点,可以处理很多东西。在上文看得到的音频流中我们也使用了该节点。本文地址:http://www.cnblogs.com/hustskyking/p/webAudio-vol... 阅读全文

[Voice communications] 看得到的音频流

2014-02-22 20:45 by Barret李靖, 2648 阅读, 1 推荐, 收藏, 编辑
摘要:上文介绍了 Web Audio API 的相关知识,以及如何在你的 web 程序中引入 音频流,内容都是介绍性的,所以没有写太多 DEMO。本文重点讲解如何利用 Web Audio API 中的中间节点拿到音频信号的信息,并将信息转化成信号图绘制到 canvas 中。从上文中我们了解到,AudioContext 是音频播放和处理的一个环境,大概的流程是这个样子: +---------------+------------------------------------+ | AudioContext | | +---... 阅读全文

[Voice communications] 让音乐响起来

2014-02-20 12:47 by Barret李靖, 2753 阅读, 1 推荐, 收藏, 编辑
摘要:本系列文章主要是介绍 Web Audio API 的相关知识,由于该技术还处在 web 草案阶段(很多标准被提出来,至于取舍需要等待稳定版文档来确定,草案阶段的文档很多都会被再次编辑甚至重写、全部删除等,不适合作为正式参考),很多 API 都是未确定的,目前支持 Web Audio API 的浏览器是较新版的 Google Chrome 和 FireFox,其他浏览器暂时还没有兼容。现在的网络硬件环境还没有达到普遍语音通信的条件,但是 web语音通信 一定会成为后期 web 研究的一个重要话题,凭着一点个人兴趣,拿出来研究研究~本文主要介绍 Web Audio API 的相关特性,以及音频源的 阅读全文

[解惑]JavaScript事件机制

2014-02-17 21:18 by Barret李靖, 17114 阅读, 26 推荐, 收藏, 编辑
摘要:群里童鞋问到关于事件传播的一个问题:“事件捕获的时候,阻止冒泡,事件到达目标之后,还会冒泡吗?”。初学 JS 的童鞋经常会有诸多疑问,我在很多 QQ 群也混了好几年了,耳濡目染也也收获了不少,以后会总结下问题的结论,顺便说说相关知识的扩展~如果贸然回答还会冒泡,这不太好的,稍微严谨点考虑 0级 DOM 事件模型的话,这个答案是否定的。但是在 2级 DOM 事件模型中,答案是肯定的,这个问题值得探讨记录下。本文地址:http://www.cnblogs.com/hustskyking/p/problem-javascript-event.html一、问题结论netscape 和 微软 曾经的战争 阅读全文