杰拉斯的博客

[思考]成年人的思想还能进步么?

杰拉斯 杰拉斯 | 时间:2013-12-19, Thu | 31,082 views
心路历程 

本文谈谈成年人思想的进步。

在我们上小学上中学的时候,不管学校的教育多么糟糕,我们的思想都在不停的进步。这表现在如果我们回首一年以前的自己的某些想法,做的某些事,会觉得那时候自己很傻。考察自己的进步的一个更客观的指标大概是“刮目相看指数”。别人如果一年没看到我们,再看的时候,第一反应往往是“你都长这么大了”。如果三年没看到再看,可能都不认识了。

但是成年以后,一个很可能的趋势是人的进步速度一般会越来越慢,以至于停止进步,甚至倒退。他们思想最牛B的时代是他们的年轻时代。中年以后他们就无法接受任何新的思想,以至于最后连自己的孩子都搞不定。

比如说歌手郑智化在过去十多年内就没有任何进步。我上中学的时候很喜欢郑智化,他的歌曲对我来说不仅仅是娱乐,而简直是一种教育。这么多年来我的思想进步了许多,可是最近郑智化在北京开演唱会,唱的还是当年那些老歌。伟大的郑智化,他为什么没有像翁美玲等美女那样在人生最伟大的年龄上死去,何必让人间见白头?

余秋雨的思想在过去这么多年内很可能还退步了。我最初知道他是上初中时看《读者文摘》上他的文章,高中以后我就再也不看《读者》,可是他现在连那种文章都写不出来。

(阅读全文…)

完美解决PyQt中QWebView链接点击失效问题

杰拉斯 杰拉斯 | 时间:2013-12-17, Tue | 52,053 views
前端开发, 编程算法 

最近在尝试使用Python和PyQt做毕业设计中。。

一边感叹Qt的强大一边纠结资料的缺乏,特别是PyQt的资料就更少了,有一些容易遇到但又比较不好在网上查询到的问题我将在接下来的博文中总结一下。

在Qt中,在一个窗口中嵌入一个WebView是非常简单的(由于QWebView继承于QWidget,甚至将其作为一个窗口显示都是可以的):

import sys
from PyQt4.Qt import *
from PyQt4.QtWebKit import *

class WebView(QWebView):
	def __init__(self):
		super(WebView, self).__init__()
		self.load(QUrl('http://www.qq.com'))
		self.show()

if __name__ == '__main__':
	app = QApplication(sys.argv)
	webView = WebView()
	sys.exit(app.exec_())

(阅读全文…)

[CSS小技巧]兼容各浏览器的未知高度垂直居中

杰拉斯 杰拉斯 | 时间:2013-12-02, Mon | 21,500 views
前端开发 
/*
 *@ Name:       未知高度垂直居中组件
 *@ Author:     一丝
 *@ Update:     2013-10-13 17:08:36
 *@ Usage:      支持图片,单行或多行文字,以及图文混排
 */

/* 去除 inline-block 的空隙 */
.center-box {
    font-size: 0;
    *word-spacing: -1px; /* IE6、7 */
    height: 100%; /* 继承父级高度 */
}

/* 修复 Safari 5- inline-block 的空隙 */
 @media (-webkit-min-device-pixel-ratio:0) {
.center-box {
    letter-spacing: -5px;
    }
}

/* 使用空标签生成一个高度100%的参照元素 */
.center-box .center-hack {
    display: inline-block;
    *display: inline;
    *zoom: 1;
    font-size: 0;
    width: 0;
    height: 100%;
    vertical-align: middle;
}

.center-box .center-body {
    letter-spacing: normal;
    word-spacing: normal;
    display: inline-block;
    *display: inline;
    *zoom: 1;
    font-size: 12px;
    vertical-align: middle; /* 保证文字垂直居中 */
    padding: 0 !important; /* 防止设置边距导致居中失效 */
    margin: 0 !important;
    width: 100%; /* 保证连续字符也能居中 */
    white-space: normal; /* 保证连续字符换行 */
    word-wrap: break-word;
}

.center-box .center-img {
    display: inline-block;
    *display: inline;
    *zoom: 1;
    width: 100%;
    text-align: center; /* 图片默认水平居中 */
    vertical-align: middle;
    padding: 0 !important; /* 防止设置边距导致居中失效 */
    margin: 0 !important;
}

.center-box img {
    vertical-align: middle; /* 去除现代浏览器 img 底部空隙 */
}

原理是利用CSS中的vertical-align属性.center-body的对齐方式设置为行内垂直居中,再利用一个宽度为0,高度为100%的元素.center-hack同样在行内垂直居中,而.center-body相对于.center-hack垂直居中对齐,那么也就相对于父元素垂直居中对齐了。

来自一丝大大的GitHub

[知乎]关于选择器优先级的计算

杰拉斯 杰拉斯 | 时间:2013-11-25, Mon | 23,766 views
前端开发 

探寻真理者不可心存傲慢”,再一次给自己敲响警钟。

曾经以为

CSS的优先级

不过如此,虽然自己列不出(主要是不喜欢死记理论)所有CSS选择器的优先级顺序,但我在写代码的时候一定能够写对,所以一直看轻了它,直到今天遇到了这样一个问题:

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>CSS Selectors Level</title>
	<style type="text/css">
	.inner:not(#outer) p{color: blue;}
	.outer .inner p{color: orange;}
	</style>
</head>
<body>
	<div class="outer">
		<p>outer</p>
		<div class="inner">
			<p>inner</p>
		</div>
	</div>
</body>
</html>

猜猜是什么颜色?

(阅读全文…)

[设计模式]JavaScript钩子机制的应用场景与实现

杰拉斯 杰拉斯 | 时间:2013-10-29, Tue | 30,875 views
前端开发 

当我们面对比较复杂的前端项目时,我们经常会采用模块化的方式来对JavaScript代码进行解耦,以方便对代码的管理和维护,以下是一个简单的立即执行函数实现的模块化例子:

var Common = (function(){
	var func = function(){
		// 全局公用方法
	}
	return {
		func : func
	}
})();

var ModuleA = (function(){
	var _count = 1;
	var init = function(){
		// 独立模块逻辑
	}
	var getCount = function(){
		return _count;
	}
	return {
		init : init,
		getCount : getCount
	}
})();

模块只对外暴露外部需要的接口,而外部模块不需要关心其内部的运行逻辑,只需要知道调用接口的方式和返回结果,这样就实现了模块的“低耦合,高内聚”。

看起来很美好,可是当项目的逻辑变的越来越复杂时,比如A模块中某个针对全局公用的逻辑,可能在B模块的某种特定情况下需要进行一些额外的逻辑操作,该怎么办呢?

(阅读全文…)