Actually,simplicity is not simple

ArchLinux的包管理系统Pacman常用法

pacman -Sy abc #和源同步后安装名为abc的包
pacman -S abc #从本地数据库中得到abc的信息,下载安装abc包
pacman -Sf abc #强制安装包abc
pacman -Ss abc #搜索有关abc信息的包
pacman -Si abc #从数据库中搜索包abc的信息
pacman -Qi abc #列出已安装的包abc的详细信息
pacman -Syu #同步源,并更新系统
pacman -Sy #仅同步源
pacman -Su #更新系统
pacman -R abc #删除abc包
pacman -Rc abc #删除abc包和依赖abc的包
pacman -Rsc abc #删除abc包和abc依赖的包
pacman -Sc #清理/var/cache/pacman/pkg目录下的旧包
pacman -Scc #清除所有下载的包和数据库
pacman -U abc #安装下载的abs包,或新编译的abc包
pacman -Sd abc #忽略依赖性问题,安装包abc
pacman pacman -Su –ignore foo #升级时不升级包foo
pacman -Sg abc #查询abc这个包组包含的软件包

转自:http://vidot.blogbus.com/logs/32531650.html

花了几天时间汉化了下SQLyog Enterprise 8.14正式版

SQLyog企业正式版 V8.14(不完全汉化)

Update 2011-12-13:SQLyog Ultimate 9.3.3 简体中文正式版出来了,用新的去吧!

SQLyog 是一个易于使用的、快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库。 这个版本我没有完全汉化完,对非标字符的汉化了解不多,出现译文比原字符长时不知如果处理,只能完成这些了,还有快捷键对照表那块Athena-A无法找到,Radialix能找到但我汉化完后不能导出程序,同样没有汉化。

内带有注册机文件。

汉化人:lwkyy 2009年9月18日

下载地址可猛击这里,不过好像下载的包里注册机没有了,出于对大家都知道的考虑吧,大家可到网上找找,如找不到可email给我!

本翻译版本参考了SQLyog 7.14企业汉化版作者的辛苦劳动成果,在此表示感谢!

还有一点就是这软件不是完全汉化的,对我这个初学汉化的人来说有很大的难度。如有高人可以接着汉化,不过记得发给我一份 ^_^~~

Update(2010-04-30): 今天放出SQLyog Ultimate 8.32正式汉化版,你可以移步来看看,猛击这里

CSS的优先权

优先权问题其实就是一个冲突解决的问题,当同一个元素(或内容)被CSS选择符选中时,就要按照优先权取舍不同的CSS规则,这其中涉及到的问题其实很多。

首先就是CSS规则的specificity(特殊性),CSS2.1有一套关于specificity的计算方式,用一个四位的数字串(CSS2是三位)来表示,最终specificity越高的规则越特殊,在优先级判定时也就越有优势。关于specificity的具体计算在各种情况下的数字加成有如下一般规则:style

  • 每个ID选择符(#someid),加 0,1,0,0。
  • 每个class选择符(.someclass)、每个属性选择符(形如[attr=”"]等)、每个伪类(形如:hover等)加0,0,1,0
  • 每个元素或伪元素(:firstchild)等,加0,0,0,1
  • 其他选择符包括全局选择符*,加0,0,0,0。相当于没加,不过这也是一种specificity,后面会解释。
  • 按这些规则将数字串逐位相加,就得到最终计算得的specificity,然后在比较取舍时按照从左到右的顺序逐位比较。

举一些例子吧:

[CSS]
h1 {color: red;}
/* 只有一个普通元素加成,结果是 0,0,0,1 */
body h1 {color: green;}
/* 两个普通元素加成,结果是 0,0,0,2 */
/*0,0,0,1 小于 0,0,0,2 ,后者胜出*/

h2.grape {color: purple;}
/* 一个普通元素、一个class选择符加成,结果是 0,0,1,1*/
h2 {color: silver;}
/*一个普通元素,结果是 0,0,0,1 */
/*0,0,1,1 大于 0,0,0,1 ,前者胜出*/

html > body table tr[id=”totals”] td ul > li {color: maroon;}
/* 7个普通元素、一个属性选择符、两个其他选择符(子选择符 >),结果是0,0,1,7 */
li#answer {color: navy;}
/* 一个ID选择符,一个普通选择符,结果是0,1,0,1 */
/*0,0,1,7 小于 0,1,0,1,后者胜出*/

除了specificity还有一些其他规则

  • HTML文件内的样式优先级为1,0,0,0,所以始终高于外部定义。这里文内样式指形如blah 的样式,而外部定义指经由< link>或< style>标签定义的规则。
  • 有!important声明的规则高于一切。如果!important声明冲突,则比较优先权。
  • 如果优先权一样,则按照在源码中出现的顺序决定,后来者居上。
  • 由继承而得到的样式没有specificity的计算,它低于一切其他规则(比如全局选择符*定义的规则)。
  • 关于经由@import载入的外部样式,由于@import必须出现在所有其他规则定义之前(如不是,则浏览器应该忽略之),所以按照后来居上原则,一般优先权冲突时是占下风的。

这里需要提一下IE,IE是可以识别位置错误的@import的,但无论@import在什么地方,它都认为是位于所有其他规则定义之前的,这可能会引发一些误会。

所以优先权问题虽然看起来简单,但其背后还是有蛮复杂的机制的,需要多多留意。

文章来自old9, 过不了GFW自己想办法吧!

fixed 定位在 IE6 下的实现技巧一则

从蓝色理想看到这贴:固定在右下角的离奇方法

受上面帖子的启发,也做了一个demo:ie6_fixed_position.html

代码:

[HTML]
<div id="a" style="width: 300px; height: 100px; background: red">test</div>
<script>
    var ie6 = !window.XMLHttpRequest;

    var a = document.getElementById('a');
    a.style.position = ie6 ? 'absolute' : 'fixed';
    a.style.right = 0;
    a.style.bottom = 0;

    if (ie6) {
        window.onscroll = function() {
            a.className = a.className;
        };
    }
</script>

原理分析: * position: absolute的元素,直接放在position:static的 body 中时,绝对定位的参考物是 body 的 viewport 部分。这使得元素 a 在窗口 resize 时,自动就能准确定位到右下角。注意:body 的 position 不能为 relative 等值,否则失效。 * onscroll 时需要特殊处理一下,使得滚动时,也让绝对定位元素 a 的参考物能更新为当前的 viewport. 上面的a.className = a.className就是这样一个 hack: 使得 a 的定位参考物动态更新为当前的 viewport. 类似的 hack 还有a.style.background = 'red'. 这些 hack 会引发 reflow, 但反之不一定,进一步的规律没找到,不过有一个 hack,也就够用了。

耐心总结,快乐分享,欢迎讨论。

转自岁月如歌

局部变量对全局变量修改出现的问题

[javascript]
var x = [1,2,3], o = [];
document.body.onclick = function(){
o[0] = ‘new’;
o = x;
alert(o);
}

这样一段代码你觉得多次输出的结果是一样吗?如果不一样知道为什么吗?

结果是不一样,有点意思噢,第一次结果[1,2,3],但再次点击后结果为['new',2,3]

导致结果不一样又是指针搞的鬼,这不去认真看真不会发觉,第一次o=x后,由于o与x相同,x o被改成同一指针的引用了,相当于o=x=[1,2,3]

要解决这问题把var x = [1,2,3], o = [];这样的全局变量放到内部去就可以了。

[javascript]
document.body.onclick = function(){
    var x = [1,2,3], o = [];
    o[0] = ‘new’;
    o = x;
    alert(o);
}

这样多少点击后的结果也是一样的。