無標題文檔

适合 Vim 等编辑器的等宽编程字体

经常使用同一种字体会很容易感到疲劳,所以需要时常更换自己心爱的编辑器的颜色和字体。

一直以来我一直用的是一个名叫 Raize 的编程字体

由于我一直以来使用液晶显示器,抗锯齿的字体边缘平滑技术已经出来很多年,感觉是时候得更上时代了。

找来找去,突然发现 Windows 系统自带的 Consloas 字体在开启抗锯齿以后,效果非常的不错。由于是 Windows 自带的字体,版权方面就心照不宣了,大家「仅仅用于学术研究」使用。

截几张图看下效果:

https://friable.rocks/_/2007_12_12/1049106472.jpg

Vim 中使用 Raize 字体的效果

https://friable.rocks/_/2007_12_12/590000604.jpg

Vim 中使用 Consloas 字体的效果(开启抗锯齿)

最后还是老样子,上述两款字体 ZIP 格式打包下载 (这又使我想起了一句话:实在是居家旅行、×××× 的必备利器)。

更新:其他的等宽适合编程的字体可以到 这个链接 去看看。

更新 JavaScript 数组的 uniq 方法

上次写的一篇《 JavaScript 数组的 uniq 方法 》,发现代码的问题还是存在。比如如果数组内有 undefined 元素就无法过滤等。

昨天看见 Lazy 兄弟重新更新了函数,现在他是这样子写的:

Array.prototype.uniq = function() {
    var resultArr = [],
        returnArr = [],
        origLen = this.length,
        resultLen;

    function include(arr, value) {
        for (var i = 0, n = arr.length; i < n; ++i){
            if (arr[i] === value) {
                return true;
            }
        }

        return false;
    }

    resultArr.push(this[0]);
    for (var i = 1; i < origLen; ++i) {
        if (include(resultArr, this[i])) {
            returnArr.push(this[i]);
        } else {
            resultArr.push(this[i]);
        }
    }

    resultLen = resultArr.length;
    this.length = resultLen;
    for (var i = 0; i < resultLen; ++i){
        this[i] = resultArr[i];
    }

    return returnArr;
}

按照他的说法:「这种解法在整个过程对原有数组的改变只有两次,效率比其他两种高了2个数量级左右!」,我实测了下此函数的效率,的确如此( 测试连接点这里 )。

我也重新编写和更新了我的函数,现在看起来是这个样子的:

Array.prototype.uniq = function() {
    var tmp    = new Array;
    var length = this.length;

    for(var i = 0; i < length; i++) {
        var push = true;
        for(var j = i + 1; j < length; j++) {
            if(this[j] === this[i]) {
                push = false;
                break;
            }
        }

        if(push) {
            tmp.push(this[i])
        }
    }

    this.length = tmp.length;
    for (var i = 0; i < tmp.length; i++) {
        this[i] = tmp[i];
    }

    return tmp;
}

由同一个页面测试所得,效率还是 Lazy 兄弟的稍许快些。经过一点思考以后,我有了些一点点我的心得:

  1. 我的函数 for 嵌套可以用一个函数独立(就如 Lazy 兄弟的 include 函数一样)。在上述的情况下,调用函数会比循环判断效率要高一些。
  2. 数组的循环读写操作在数据量大的情况下应格外的注意效率问题

Lazy 兄弟的结论:

对数组的改变开销巨大,如果可能,尽量在不改变原有数组的情况下进行操作。
如最终需要改变数组自身,可将结果赋予原有数组来操作。另外,对于 length
的计算,似乎效率并未受其影响。

Lazy 兄弟的 resultArr 数组按照他这样的写法就可以保存同样的值,在这里赞一个(虽然我的函数经过一点小的修改也可以实现)。感兴趣的朋友可以去 Lazy 的页面 去看看。

最后,推荐阅读一下王元涛兄弟的 JavaScript 数组的 uniq 方法 ,万分感谢。

Web 标准的观点语录

记得上次我的拙作 《谁会在意什么 Web 标准》 ,当 这篇文章放到蓝色经典论坛 的时候。吸引了很多对于标准有各自不同看法的人拍砖。

请允许我摘录几篇具有代表性的回复。是他们让我对于标准又有了一个新的思考,在这里感谢他们(注,观点不分先后,按照回复时间排序):

catest

同意文章部分的观点,「Web 标准其实是一种思想」这是肯定的。如果只是
一个很简单的页面,流量不大,也不奢求搜索引擎的收录,改动也不频繁,
那大可不必唯标准是从。

作者有的话只说对了一部分:「用户要的是效果、功能以及内容」。没错,
这些都是用户想要的,但用户的体验不仅仅是这些。一个表格构造的庞大
门户首页,让用户在等待中失去耐心,当用户使用移动终端登陆网站,却发
现难以阅读(不要说现在手机上网的人太少),在网站林立的互联网,在没
有绝对强势优势的网站,任何使用户感到不爽的体验都会致使用户的倒戈,
这样的代价小么?

不要说 Web 标准难,难是因为改变固有的思路难,知难而上是基本的职业
素质,当用的人多了,浏览器厂商妥协了,很多事就不是那么难了。

W3CSS

如果你书写的代码本身就符合标准~ 那么就不可能有所谓的「因为标准而标
准」 的问题。(不知道你能不能理解我的意思)

标准本身没有坏处,那么何乐而不为?

至于有朋友说到:「不是理想中的修改一下 CSS 就可以了,往往还要修改
html 文件"」

因为 html 和 css 都不是完美的~ 包括浏览器,而我们想要达到的目的太
理想化了。

soni

谁会在意呢?90% 的用户不会在意你的网站符合什么狗屁标准,通过了什么
验证。他们关心的内容,有没有他们感兴趣的信息,能不能完成他们访问你
的站点的目的。对他们来说,唯一的好处就是符合标准的网站访问起来一般
都很快。

在意是否符合标准的是网站的设计者。符合标准的网站,能够实现更多的功
能,能够更美观,制作也更快。修改更容易。对于统一网站的整体风格更容
易控制。

而且代码可重用,创建一个可重用的布局表格几乎是不可能的,而可重用的
CSS 布局代码则可以。

另外,对于一个符合标准的网页进行 JS 编码要容易很多,网络资源更加丰
富。

而且,我更喜欢打开记事本简单的编辑几下 CSS,而不是用我的破机器打开
Dreamweaver 来拉动表格。

leitu_studio

深入的了解表现、结构、行为,你就不会有这种想法了!合理的 css 在维护
起来还是很方便的...

在国外,可能手持设备用的比较多一些,所以国外的标准考虑的用户群体也
很多,标准是国外人制定的。

如果你想用这种技术去做东西,就要转换一下思想,脱离表格布局的思想。

感到麻烦的罪魁祸首还是浏览器厂商,如果他们都标准化,就不会有 hack 
了.....

更新,感谢 ChinaUnix 上 jhsea3do 兄弟的回复。

jhsea3do

我认为没有多少客户会去在意什么web标准,但绝对不能把这个范畴扩大到所
有人。

估计你是被IE的那些BUG折腾到没有意志了才说出这些气话。就我感觉,有一个
web 标准存在,并且开发人员遵循标准开发,可以减少很多不必要的开销,并
最大的保持程序的兼容性。

实际上,在 firefox 下制作的 html 在s afari, opera 下的表现基本上是一
致的,最后为了兼容市场占有率最大的 ie,不得不作些 hack。

正是 linux, mac 等桌面系统的存在,才没有让 windows 垄断桌面系统市场,
你的名字叫 AMD,我想你也不喜欢 INTEL 独行其道。

虽然我是一个宗教狂,但我讨厌 ie 不是因为 windows,而是形形色色的网页
病毒。

我发动身边的人用非 ie 浏览器来避免上网中毒,但是收效微弱,原因是 taobao,
网银不支持。

中国人在 web 标准的推广方面贡献太少,还不如台湾。

最后我想说 web 标准 存在的意义是对各大浏览器厂商进行约束,减少兼容性所
带来的麻烦。

w3c 的标准出了这么多年了,的确有考虑不周到的地方,比如 form 下的控件,
但这个标准带来的好处远比麻烦要多。

我的照片

嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHubTwitterInstagram 等。

这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 要知道作为码农取名是件很难的事情,所以不想在取名这事情上太费心思。

作为八零后,自认为还仅存点点可能不怎么被理解的幽默感,以及对平淡生活的追求和向往。 为了避免不必要的麻烦,声明本站所输出的内容以及观点仅代表个人,不代表自己所服务公司或组织的任何立场。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQG91dGxvb2suY29tCg== | base64 -d`

分类

搜索

文章