软件:
开发用
工具
系统
多媒体
驱动程序
办公
装机必备【这个好像很杂】
歌曲音乐:
音乐专辑
电子书:
按类别,按出版时间分类
文档:
RSS feed
电影:
一个目录就够了吗?
家庭资料:
音频
视频
照片
游戏:
三国群英传2
CS1.6
SC全集
51game
系统备份:
光盘镜像:
虚拟机系统文件:
软件:
开发用
工具
系统
多媒体
驱动程序
办公
装机必备【这个好像很杂】
歌曲音乐:
音乐专辑
电子书:
按类别,按出版时间分类
文档:
RSS feed
电影:
一个目录就够了吗?
家庭资料:
音频
视频
照片
游戏:
三国群英传2
CS1.6
SC全集
51game
系统备份:
光盘镜像:
虚拟机系统文件:
今天在cnBeta的RSS上看到一条消息说,李彦宏大人亲自下令将刚刚在昨天改版的百度贴吧改回原来的版本。哈哈,这种做法和51.com前几天的行为简直是一个模子里出来的。
上周51.com的相册浏览页也进行了改版,主要的变化是缩略图由780px改为了460px,页面背景有一个很难看的黑底。结果,受到很多老用户的抵触,第三天,就又改回去了。百度这次事件基本上也是因为爆发了大量的用户差评导致的。这里我不知道新版的百度贴吧是个什么样子的,不过就改版这件事来说,我觉得有时候过分顺从用户未必是件好事。
一个产品总归有人喜欢,有人不喜欢,做不到完美,那么就应该向着尽善尽美的方向努力。一旦有了较大的变动而导致负面意见短时期较大就诚惶诚恐的话,是不利于整个产品的发展的。当然,我这样说的意思也不是说随便改版,不顾用户的看法。
比较好的做法是:
1.尽可能做好前期调研,发现用户的切实需要,埋头做项目最后浪费的只是大家的心情和相关产品开发人员的精力
2.最好是提出一个过渡式的方案,新老版本并存,可以让部分的用户可选这两个版本之一即可
3.即使出现负面评论也不要过分紧张,新版本也许并没有那么差,也许有些觉得新版本好的用户只是在心里面夸【比如这次51.com的相册浏览页改版,米妈就觉得不错】,也许只要在新版上稍微发掘一下就能满足更多用户的需求
又有几天没有写日记了,通常有2种原因会出现这种情况,一个是因为生活太枯燥没什么可写的,第二种可能就是我正遇到的。
生活太忙碌,没有时间写。
上个礼拜接连是我的阳历生日,我的阴历生日,米米的阴历100天,米米的阳历100天,又是吃饭前的种种,又是米妈要去体检,米外婆身体又不大舒服。我的有些事情也不大顺心。还好,周末买了5注彩票,中了最高级别的5元钱,冲冲霉气。
下面步入正题:通常情况下,IE里面我们用window.clipboardData这个对象来实现用户点击按钮即可拷贝指定文本框里面的内容
<input type="text" id="txt" value="ABCDEF" />
<input type="button" onclick="co();" value="COPY" />
<script>
function co() {
var txt = document.getElementById("txt");
var t = txt.value;
if (window.clipboardData) {
window.clipboardData.setData("Text",t);
}
}
</script>
对于非IE浏览器由于安全问题,默认是禁止控制剪贴板的,于是诞生了JS+Flash结合解决该问题的“终极方案”。利用Flash的剪贴板功能,将数据传递给FLASH然后调用FLASH内置方法,设置剪贴板。
<embed src="clipboard.swf" flashvars="clipboard=escape('这里是要传输的文字')"
type="application/x-shockwave-flash" width="0" height="0"></embed>
clipboard.swf文件里只有简单的这些代码即可。
if(clipboard.length) {
System.setClipboard(clipboard);
}
但是,自从Flash Player 10出来之后,一切都改变了。具体如何处理明天继续。
今天碰到一个古怪的问题,按照以前的逻辑思维怎么也走不通。大概的代码是:
$("#node_a,#node_b,#node_c").appendTo($("#container"));
按照以前的逻辑就是将node_a,node_b,node_c节点按顺序插入到container节点内。可是今天出错了。
下面看一个DEMO。http://demo.thankphp.net/65_jquery.htm [IE下看效果]
可以看出来jquery1.3.2和jquery1.3.1的selector有着天壤之别。
仔细阅读了一下jquery最新的1.3.2的代码,发现jquery1.3.2的selector有这样的代码变化。
Sizzle CSS选择器引擎中增加了这样一段话:http://sizzlejs.com/ thankwsx
if ( sortOrder ) {
hasDuplicate = false;
results.sort(sortOrder);
if ( hasDuplicate ) {
for ( var i = 1; i < results.length; i++ ) {
if ( results[i] === results[i-1] ) {
results.splice(i--, 1);
}
}
}
}
sortOrder又是哪里来的呢?
var sortOrder;
if ( document.documentElement.compareDocumentPosition ) {
sortOrder = function( a, b ) {
var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1;
if ( ret === 0 ) {
hasDuplicate = true;
}
return ret;
};
} else if ( "sourceIndex" in document.documentElement ) {
sortOrder = function( a, b ) {
var ret = a.sourceIndex - b.sourceIndex;
if ( ret === 0 ) {
hasDuplicate = true;
}
return ret;
};
} else if ( document.createRange ) {
sortOrder = function( a, b ) {
var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange();
aRange.selectNode(a);
aRange.collapse(true);
bRange.selectNode(b);
bRange.collapse(true);
var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange);
if ( ret === 0 ) {
hasDuplicate = true;
}
return ret;
};
}
现在一切都清楚了,jquery1.3.2版本之前,选择器是按选择器提供的顺序选择节点的,而jquery1.3.2版本之后选择器选择节点的先后顺序与你的书写顺序无关了,jquery会自动匹配节点集合中节点的顺序按节点顺序返回。
为了查这么一个BUG,花费了大半天的时间。其实只要看看jquery官方提供的Release Note就一切明了了。http://docs.jquery.com/Release:jQuery_1.3.2
项目庞大了之后,所有引用的第三方的代码更新升级的时候必须小心谨慎,如果有一些意料外的事情发生要首先检查是否是第三方代码引起的。【在本身代码未作更改的前提下】。第三方代码的升级换代要了解清楚可能会有的影响。兼容性在项目中有时候是最最重要的。
大家随便用,比放在自己服务器上要方便省事。
http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js
http://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js
http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js
http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js
将URL中的min去掉是源文件的地址。
这下可以在自己的模板里添加<script type=”text/javascript” src=”GOOGLE_JQUERY_SRC”></script>了。
因为工作需要,装了个windows98第二版,真晕啊,这东西恐怕有4-5年没见了。老朋友,绝对是老朋友。
还记得01年左右的时候,经常装98系统,那序列号背的是贼溜,今天输入序列号的时候依稀还记得。WXWGP XDR8Y 等等。。后来实在想不起来,还是去网上找了另外一个能用的。
98系统就像以前的红白机游戏一样,某些软件只能在古老的系统上运行了。
米妈在网上给咱买了个包包,单肩、SONY原装正品、最大可容纳15寸笔记本、防雨、防晒、防盗的包包。

正品:¥280。
我刚拿到手的时候还闲这闲那的,米妈气色特了,要把包推掉。哈哈,我就是这个臭毛病,舍不得花钱。【习惯是很难改掉的】
其实还是很喜欢的。不过今天早上背来的路上发现,帅归帅,舒适性还是双肩背包好,不过坐着的话,双肩背包又没地方放,放在腿上太别扭了,占地方。如果是小本本的话,路上都可以拿出来玩。
我说要不要弄把锁防止电脑背偷了,米米外婆说,人家不撬锁,把你的包拿走就行了。汗~
客运总站的余票是真的,火车站的余票是假的。
网络上也不乏虚假的及时更新。
今天无意中打开一个大型网站,上面有一行字:“全国鲜活信息:9178281 条 今日新发信息数:34852 条 注册用户数:2901131”。
而且这个数字还在不断的更新,一片火爆景象。
我是一个做技术的,自然很佩服,这样高的更新频率得对程序要求多高啊?于是好奇起来看该网站的程序。
结果刚打开源代码搜索到这个关键字“全国鲜活信息”就发现紧跟着有下面这段代码。
var post_freq = 0.75;
var user_freq = 3.75;
setInterval("document.getElementById(\"total_new\").innerHTML =
parseInt(document.getElementById(\"total_new\").innerHTML)+1;
document.getElementById(\"total_active\").innerHTML =
parseInt(document.getElementById(\"total_active\").innerHTML)+1",1000*post_freq);
setInterval("document.getElementById(\"total_user\").innerHTML =
parseInt(document.getElementById(\"total_user\").innerHTML)+1",1000*user_freq);
哦,我明白了。。
这里不是介绍img 的 src属性里的data而是真正的由文本构成的图片。【有关src data的参考资料见 http://dean.edwards.name/weblog/2005/06/base64-ie/ 】先看看效果吧。
这里 http://demo.thankphp.net/php/pix.php【可能有点慢,PSP,智能机当心点开】
下面看代码,非常非常简单。
$imgname = "http://www.haoting.com/images/logo.jpg";
$im = imagecreatefromjpeg($imgname);
$width = imagesx($im);
$height = imagesy($im);
echo '<style type="text/css">span {font-size:4px;line-height:2px;}</style>'; //good
$space = 1;
for( $i = 0 ; $i < $height ; $i+=$space) {
for ($j = 0 ; $j < $width ; $j+=$space) {
$rgb = imagecolorat($im,$j,$i);
$color = dechex($rgb);
echo '<span><font color="#'.$color.'">*</font></span>';
}
echo "<br />\n";
}
该plugin的主页是:http://onehackoranother.com/projects/jquery/boxy/
最新版本是:0.1.4
一般性的效果截图如下:
目前IE7还存在问题。
经检测,问题不是出在Boxy,而是我用的YAML和Boxy的CSS定义冲突了。解决中。。。