1月
10
2013

我的博客也启用了移动版!

前一阵子忙,突然发现站点没法访问了,登陆IDC控制面板发现站点状态正常,不详的预感……

ftp进来,晴天霹雳!所有文件夹结构都在,文件都不见了,所有文件哪!

第一反应是IDC出问题,咨询未果,得出一个我也不愿意接受的结论:被黑了……

哪个挨千刀的……

赶紧登陆数据库,幸好,数据没动,好险。

简单测试了一下搜索引擎收录,果然,全部删除,就别提神马PR了……

adsense的广告位也闲置了,居然down了超过七天了!

找到了9月份的备份,上次折腾看来已经是好久的事情了

恢复好了以后,老规矩,调缓存、调主题,简单休整以后起死回生。

反思了一下,估计是上次测试的几个开源小破站点,挂在这台VPS了,然后就给忘了,那几个站点有漏洞是很正常的,本身就带马都不好说,算了,不纠结了,看来以后还是不能乱上传东西。

拿掉了cufon,实在是受够了。

安装了XX版的WPtouch,经过艰苦卓绝的奋战,搞定了它与神器WP Super Cache的兼容,终于看到效果!

折腾过程总结几点,启用WPtouch,Super Cache和WPtouch的设置界面要各自设置为兼容、Super Cache启用移动设备支持、更新规则后清除缓存,应该就搞定了。

WPTouch_review

9月
27
2012

北京驾驶员科目二桩考要领

考了三次才通过,囧,以下是结合教练教学总结的一些要领,亲试好用,发出来大家借鉴。

贴库:

1车库对准七米线,右打满,车盖正中对线,左半圈,车正回轮。

2倒车,回头看右后窗立柱对中杆右打满,看不见中杆放半圈,再次看见右打满,看反光镜,露出左后杆一点回正车轮,调整左右距离,入库

移库:

1 右打满前进,左车标中杆左打满,车正回轮,到杆停。

2 右打满倒车,左雨刷头左杆左打满,车正回轮,退至车头对杆线。

3 右打满前进,左车标中杆左打满,车正回轮,到杆停。

4 右打满倒车,回头看后中杆过左后窗立柱标10公分以上左打满,车正停。

倒库:

1左打满前进,左车标左杆回正,前进出库,左发动机盖角对七米线左打满,车盖正中对线,右半圈,车正回轮。

2倒车,看左前杆对右后杆一条直线停车,左打满,看左后门立柱对准前中杆回半圈,看到中杆左后立柱标一点(5公分)停车,左打满,通过左右后视镜观察车正停车回正,入库。 (更多…)

8月
24
2012

ZZ 您还在为XP系统下的微软雅黑烦脑吗?

转自HTML5集中营

由于公司网站的字体是用的「微软雅黑」,使用Windows XP的用户看到的页面字体颜色淡淡的,辨识度不是很好,于是我百度寻找解决方案,在百度得到的答案是”因为Windows XP 默认没有开启Clear Type,所以不支持字体渲染才会造成页面字体不太适合阅读,会觉得淡淡的颜色不够深,看起来不是很友好,辨识度还比宋体差很多。如下图:
难道我们要让用户手动去开启Clear Type,我想这也太不现实了吧!为了解决这个问题,我苦恼了很久,相信这也是很多前端工程师和设计师们一直纠结而痛苦的问题,就这样放弃其实又感觉蛮可惜的,因为「微软雅黑」字型漂亮,浏览网页看比宋体的网页要舒服很多,也会漂亮很多,心情也会愉悦起来。即然前端工程师和设计师都很喜欢微软雅黑,那么我们应该如何解决呢?直到我偶然发现了点点网,浏览完整个博客感触很深,因为他们的前端做得很细腻,细节处理惩罚得很好,于是我拜读一下点点网的代码。 (更多…)

7月
24
2012

悲剧,迁完站点WP Super Cache坏了

鼓捣了一个小时,重装了两次,居然还是不知道怎么好的,算了,累死了,不深究了。

反正是好了。

6月
2
2012

ZZ cufon中文不可换行,超出容器边界的问题

Cufón开发时没有考虑到中文应用,CSS的word-break;word-warp都已失效,中文换行那怎么办呢?

去看API文档!我在 api文档 看到这么一段:

separate   How to separate pieces of text. By default each word is considered a unit of its own, which works well with multi-line text. ‘none’ is only suitable for single lines of text.   Possible values:‘words’, ‘none’ or ‘characters

老外把words作为默认参数,在我们应该用characters,把html文件中的 Cufon.replace(‘h1′) 改为 Cufon.replace(‘h1′,{separate:’characters’}) 就行了。

转自Cufon-font 多谢海哥推荐

5月
29
2012

ZZ Document.Referrer丢失的几个原因

Referrer的重要性

HTTP请求中有一个referer的报文头,用来指明当前流量的来源参考页。例如在www.sina.com.cn/sports/上点击一个链接到达cctv.com首页,那么就referrer就是www.sina.com.cn/sports/了。在Javascript中,我们可以通过document.referrer来获取同样的信息。通过这个信息,我们就可以知道访客是从什么渠道来到当前页面的。这对于Web Analytics来说,是非常重要的,这可以告诉我们不同渠道带来的流量的分布情况,还有用户搜索的关键词等,都是通过分析这个referrer信息来获取的。

但是,出于各种各样的原因,有时候Javascript中读到的referrer却是空字符串。下面总结一下哪些情况下会丢失referrer。

Referrer丢失的几个场景

修改Location对象进行页面导航

Location对象是一个用于页面导航的非常实用的对象。因为他允许你只变更Url的其中一部分。例如从cn域名切换到com域名,其他部分不变:

window.location.hostname = "example.com";

但是,通过修改Location进行页面导航的方法,会导致在IE下丢失Referrer。

IE5.5+ 下返回空字符串

Chrome3.0+,Firefox3.5,Opera9.6,Safari3.2.2均正常返回来源网页

window.open方式打开新窗口

示例:

<a href="#" onclick="window.open('http://www.google.com')">访问Google</a>

点击此链接会在新窗口打开Google网站,我们在地址栏中输入以下js代码就可以看到发送的referrer了。

javascript:alert(document.referrer)

测试结果:

IE5.5+ 下返回空字符串

Chrome3.0+,Firefox3.5,Opera9.6,Safari3.2.2均正常返回来源网页

如果是同个域名下通过此方式跳转的,那么我们可以通过访问windoww.opener对象去获取丢失的referrer信息。代码如下:

<script type="text/javascript">
    var referrer = document.referrer;
    if (!referrer) {
        try {
            if (window.opener) {
                // IE下如果跨域则抛出权限异常
                // Safari和Chrome下window.opener.location没有任何属性
                referrer = window.opener.location.href;
            }
        }
        catch (e) {}
    }
</script>

跨域的话则没辙了~

鼠标拖拽打开新窗口

鼠标拖拽是现在非常流行的用户习惯,很多浏览器都内置或者可以通过插件的方式来支持鼠标拖拽式浏览。但是通过这种方式打开的页面,基本全都丢失referrer。并且,这种情况下,也无法使用window.opener的方式去获取丢失的referrer了。

已测试:

Maxthon2.5.2,Firefox的FireGesture插件,Chrome3.0+,Opera9.6,Safari3.2。

点击Flash内部链接

点击Flash上到达另外一个网站的时候,Referrer的情况就比较杂乱了。

IE下,通过客户端Javascript的document.referrer读取到的值是空的,但是如果你使用流量监控软件看一下的话,你会发现,实际上HTTP请求中的Referer报文头却是有值的,这可能是IE实现的Bug。同时,这个值指向的是Flash文件的地址,而不是来源网页的地址。

Chrome4.0下点击Flash到达新窗口之后,Referrer也是指向的Flash文件的地址,而不是源网页的地址。

Chrome3.0和Safari3.2是一样的,都是会丢失Referrer信息。

Opera则和Firefox一样,Referrer的值都是来源网页的地址。

HTTPS跳转到HTTP

从HTTPS的网站跳转到HTTP的网站时,浏览器是不会发送referrer的。这个各大浏览器的行为是一样的。

例如,我们在HTTPS下使用Google Reader或是Gmail的时候,点击某个链接去到另外一个网站,那么从技术上来说,这样的访问和用户直接键入网址访问是没有什么分别的。

Referrer丢失对于广告流量监控的影响

Referrer如果丢失,Web Analytics就会丢掉很重要的一部分信息了,特别对于广告流量来说,就无法知道实际来源了。目前国内好多用了Google Adsense广告的网站,都使用了window.open的方式来打开广告链接,因此IE下会丢失Referrer,而我们知道,IE是目前市场份额最大的浏览器,因此其影响是很大的。很多流量统计工具会因此将这部分流量归入“直接流量”,和用户直接键入网址等价了。

对于这样的情况,需要让广告投放者在投放广告的时候,给着陆页面的Url加上特定的跟踪参数。

例如,某个Flash广告,点击之后到达的网址是http://www.example.com/,为了监控此流量是从哪个渠道过来的,我们可以修改此投放的着陆Url,改成http://www.example.com/?src=sina,类似这种方式,然后在着陆页面中使用Javascript代码提取此src参数,这样就可以得到广告来源信息。

在投放Google Adwords的时候,后台系统有一个“自动标记”的选项,当启用此选项的时候,Google在生成所有广告的着陆页面Url的时候,就会自动加上一个gclid的参数,这个参数能够将Google Analytics后台和Adwords广告后台的数据进行整合。这样就可以知道广告流量对应于哪个广告系列,哪个广告来源和广告关键词等信息了。和上面提到的思路其实是类似的。只不过Google自动帮你做了Url的修改了而已。

如果你发现了其他丢失Referrer的情况,或是你有其他解决方案,欢迎和我交流~

——Kevin Yang

转自(简单生活

5月
14
2012

Godaddy域名host到DNSPod小记

实在受不了狗爹(Godaddy)的DNS不限时被和谐的现实了,监控宝的警告信把邮箱都撑爆了,一水儿的DNS无法解析。

简单调研了一下,考虑DNSPOD,很多优点,不限域名,不限二级,不限转发,服务器也稳定,速度不错的说。

1,翻墙,上狗爹 ,顺便需了两年的费,39刀,看了看这域名底下也没几条解析记录,一条A到VPS,一条www到@和mail到腾讯邮箱的CNAME,和一条到腾讯邮箱的MX。

2,滚会墙内(不然会很卡),上DNSPod注册账户,添加域名,把上述几条解析添加好,这时候会得到DNSpod给免费用户的两台NS地址,对应6台服务器。f1g1ns1.dnspod.net.和f1g1ns2.dnspod.net.

3,再翻墙,上狗爹修改name server配置,删掉它的nscontrol系列,换上DNSPod的两条,狗爹支持6条ns记录,但这里不建议混合使用,因为有可能会造成同步混乱,不过我认为还好,只要手工控制这两家的域名解析严格同步应该就没问题吧,暂时删掉狗爹的也无所谓,假如回头发现DNSPod在国外解析不是很好再加回来。

4,等待72小时,等待生效,囧,我真等了72小时才生效,继续用cnzz站长测速盯一盯,看来DNS解析是快了不少,而且是稳定的。

2步和3步不建议颠倒,因为当你修改了狗爹的ns以后,他会把你的解析记录清空,假如没备份的话,嘿嘿

4月
23
2012

ZZ iPad网页开发教程及规则

iPad开发的局限性

  1. 在iPad上使用Safari浏览普通网站网页的时候,网页因为太大而导致需要手动放大缩小或者滑动,虽然这种滑动行为在iPad上市之初的各种宣传中被津津乐道,但时间久了我们还是会发现这样做并不方便,给用户带来的感受并不十分好。
  2. 不支持Flash在没有越狱的iPad Safari中,网站的Flash都是无法显示的,但可以通过第三方软件或插件或者浏览器来解决,不过,即使不能显示Flash,你一样能够用HTML5和CSS3实现同样的效果。
  3. 没有鼠标光标这意味着鼠标属性,例如鼠标悬停属性是不可能有的。

    你或许可以为这个找到一些变通的办法,但是到你的用户那里这些该如何工作将会是困难的事。

  4. 滚动条不能按照预期那样起作用滚动条不能显示包含了充满过多分区的内容。框架也存在高度和宽度的问题。另外,滚动过程中需要两个手指的手势。(我们将在下文中进行充分的讨论)
  5. 不支持CSS固定布局HTML 元素 position:fixed CSS属性不能正确显示,常常会使得页面停留在第一屏,无法向下翻页、放大缩小。 (更多…)
4月
23
2012

ZZ 怎么用 HTML5 给 iPad,iPhone 打造速度超快的应用

有一个为 iPad 设计的用来查时区的 HTML5 软件 everytimezone.com 最近引起了一些注意。它简单、到位,可以离线使用,并且速度极快。由于 HTML5 软件本质上只是一个网页,故不需要通过苹果的 App Store 商店发行,用户只要用 iPad 访问 everytimezone.com, 然后将书签存到桌面,下一次打开就变成了一个与原生软件几乎无异的东西。everytimezone.com 的作者托马斯·富赫是资深 JavaScript 专家,也是 JavaScript 框架 Prototype 的核心开发者之一。他近日在 博客上撰文传授了如何保证 HTML5 软件在 iPad 上飞速运行的七条秘诀,特翻译如下。—— 编者

一、少用图片

一开始,为了做出用来表示各个城市的每一天的那种渐变效果,我们用了一套相当复杂的 -webkit-gradient,结果发现这会令转译速度变得非常非常慢。-webkit-gradient 的工作方法是构建位图,对于浏览器的转译引擎来说,这和从外部加载图片(例如一张 PNG)是完全一样的。MobileSafari 显示图片速度之慢是出了名的(希望 4.0 对此有所改进),要解决这个问题,基本上只能不用图片和 -webkit-gradient。

我们最终把那些色彩条快用背景上的一个很大的 canvas 元素替代了。当你拖动游标线时,那些条快的颜色会发生变化,只有正在变化的部分才会被重新绘制。用 canvas 时可以在某种程度上复用 -webkit-gradient,比如这样:

// WebKit CSS gradient
-webkit-gradient(linear, left top, right top,
from(#4b4c4d),
color-stop(0.249, #4b4c4d),
color-stop(0.25, #575b5c),
color-stop(0.329, #575b5c),
color-stop(0.33, #6b7071),
color-stop(0.749, #6b7071),
color-stop(0.75, #575b5c),
color-stop(0.909, #575b5c),
color-stop(0.91, #4b4c4d),
to(#4b4c4d)
);

// canvas gradient
var gradient = $(‘canvas’).getContext(“2d”).createLinearGradient(0,0,230,0);
gradient.addColorStop(0,’#4b4c4d’);
gradient.addColorStop(0.249,’#4b4c4d’);
gradient.addColorStop(0.25,’#575b5c’);
gradient.addColorStop(0.329,’#575b5c’);
gradient.addColorStop(0.33,’#6b7071′);
gradient.addColorStop(0.749,’#6b7071′);
gradient.addColorStop(0.75,’#575b5c’);
gradient.addColorStop(0.909,’#575b5c’);
gradient.addColorStop(0.91,’#4b4c4d’);
gradient.addColorStop(1,’#4b4c4d’);

二、不要用 text-shadow 和 box-shadow

这是速度变慢的另外一个重要因素。最好不要用这些 CSS 属性。

三、硬件加速是很新的功能……而且也很多虫

在 Safari 上,只要使用 -webkit-transform 这个 CSS 属性就可以启用硬件加速了。(opacity 也行,不过缺点上面说过了。)

硬件加速有其局限,例如同时在跑的动画数量就有限制,如果超过了这个限制,动画就会闪烁,有时还会出错。不过如果轻度使用的话,效果会非常棒。

四、尽可能地使用触控事件

触控事件是个好选择,因为传统的 onClick 事件在 iPad 上用来会有点延迟。在 everytimezone.com 的源代码里有些小窍门,教你如何在使用触控事件的同时,也能够支持非触控设备上的浏览器:

var supportsTouch = ‘createTouch’ in document;

element[supportsTouch ? ‘ontouchmove’ : ‘onmousemove’] = function(event){
var pageX = event.pageX;
if (event.touches) pageX = event.touches[0].pageX;
// …
}

五、不要用 opacity

因为某些原因,使用 opacity 这个 CSS 属性有时会干扰硬件加速。如果你感到速度变慢,但又看不出哪里出了问题的话,就检查一下有没有用到 opacity 吧。

六、万事无捷径,请手写 JavaScript 和 CSS

不要依赖框架或是网页标准狂热分子推荐给你的东西。我们这个例子里只有一个高度精简的 HTML 页面,CSS 都写在页面里,没用任何 JavaScript 框架,并尽量利用了目标平台(iPad)的特性,最终的结果就是一个几乎能够瞬间加载的苗条网页,而且缓存做得很好,离线使用也毫不失礼。没错,我们也可 以选择用 JavaScript 和 CSS 框架,但有的时候少即多。(记住,各类框架所提供的那些对跨浏览器的支持你并非全都需要。)

// mini-pico-tiny convenience micro-framework, ymmv
function $(id){ return document.getElementById(id); }
function html(id, html){ $(id).innerHTML = html; }
function css(id, style){ $(id).style.cssText += ‘;’+style; }
function anim(id, transform, opacity, dur){
css(id, ‘-webkit-transition:-webkit-transform’+
‘,opacity ‘+(dur||0.5)+’s,’+(dur||0.5)+’s;-webkit-transform:’+
transform+’;opacity:’+(1||opacity));
}

七、别用 translate,用 translate3d

使用 -webkit-transform 时,记得用 translate3d(x,y,z) 语法,而不是 translate(x,y)。因为某种原因,后者无法支持硬件加速,至少在 iOS 3.x 上不行(不过在桌面版 Safari 里似乎没问题)。谢谢马提奥·斯宾内利指出这点。(也推荐大家看看他做的 iScroll,里面有很多很棒的代码,也是演示如何为页面在移动版 WebKit 上的速度进行优化的好例子。)

作者:托马斯·富赫 来源:http://mir.aculo.us/2010/06/04/making-an-ipad-html5-app-making-it-really-fast/

3月
17
2012

闲来无事,超频pin玩儿

 

我这台电脑老兄也实在是老了点儿,06年末买的,用了这么些年也不容易,不过CPU确实是个瓶颈,系统反应慢,赶上遨游2、firefox恰巧再开点儿诡异的网页就崩溃了,而且整个操作系统的界面反应就很慢。

超频前Win7评分

主板:

处理器名称 DualCore AMD Athlon 64 X2, 2100 MHz (10.5 x 200) 4000+
主板名称 Gigabyte GA-M55S-S3 v2 (2 PCI, 4 PCI-E x1, 1 PCI-E x16, 4 DDR2 DIMM, Audio, Gigabit LAN, IEEE-1394)
主板芯片组 nVIDIA nForce 550, AMD Hammer
系统内存 3328 MB (DDR2-667 DDR2 SDRAM)
DIMM1: Apacer Tech. 1 GB DDR2-667 DDR2 SDRAM (5-5-5-15 @ 333 MHz) (4-4-4-12 @ 266 MHz) (3-3-3-9 @ 200 MHz)
DIMM2: Makway Intl. 1 GB DDR2-667 DDR2 SDRAM (5-5-5-15 @ 333 MHz) (4-4-4-12 @ 266 MHz) (3-3-3-9 @ 200 MHz)
DIMM3: GeIL GX1GB 5300X 1 GB DDR2-667 DDR2 SDRAM (5-5-6-15 @ 333 MHz) (4-4-5-12 @ 266 MHz)
DIMM4: GeIL CL5-5-5 DDR2667 1 GB DDR2-667 DDR2 SDRAM (5-6-6-15 @ 333 MHz) (4-5-5-12 @ 266 MHz)
BIOS 类型 Award Modular (03/07/08)

这里让大家见笑了,4条内存由于历史原因,牌子/批次都不一样,悲剧

显示设备:
显示卡 NVIDIA GeForce 8600 GTS (256 MB)
显示卡 NVIDIA GeForce 8600 GTS (256 MB)
3D 加速器 nVIDIA GeForce 8600 GTS
显示器 AOC LW982 (BZ60633320511)
显示器 Samsung SyncMaster 199BW/940BW/MagicSyncMaster CX915BW (Digital) [19″ LCD] (HVDP314588)
存储器:
IDE 控制器 标准双通道 PCI IDE 控制器
存储控制器 NVIDIA nForce Serial ATA Controller
存储控制器 NVIDIA nForce Serial ATA Controller
硬盘驱动器 ST332062 0SV SCSI Disk Device (320 GB, 7200 RPM, SATA-II)
硬盘驱动器 ST350041 8AS SCSI Disk Device (500 GB, 7200 RPM, SATA-II)
硬盘驱动器 YuanTech GD2500-SATA USB Device (298 GB, USB)
光盘驱动器 PIONEER DVD-RW DVR-112 ATA Device (DVD+R9:10x, DVD-R9:10x, DVD+RW:18x/8x, DVD-RW:16x/6x, DVD-RAM:12x, DVD-ROM:16x, CD:40x/32x/40x DVD+RW/DVD-RW/DVD-RAM)
硬盘 SMART 状态 OK

本来想少花点儿买个AM2或者AM3的散片要么2手简单升级升级,在PCI上和坛子兄弟们聊了一下,初步否定速龙X64 6000+或者6400+,因为毕竟是当年的顶级U,发热不可小觑,动不动90几W,听起来忒吓人。

也考虑了速龙II的240或者250,3G左右的主频毕竟比之前提高了1GHz,而且速龙II代K10应该比K8提升还是明显的。

taobao了一下240或者250,基本上在290块左右,预算还是有点儿高,不如再攒攒米直接换全套好了。

也有人推荐我上145单核开双核,也将近3G左右的主频,不过要换板子,我的板子不支持开核,也不考虑。

5050e 65nm 45W 2.6GHz的主频,淘宝180散片,价钱倒是便宜,不过我感觉提升不会很大,不如不换。

也有兄弟劝我不如先超频,再将就将就一直到换机,我感觉靠谱,直接开动!

 

我这个板子之前我也超过频,虽然是技嘉的板子,但是这款是天杀的南北桥合一的设计,芯片组发热是十分恐怖的,所以我记得这板子的素质很差。

  • 好多年没超过频了,不过还好,机器是老的,轻车熟路,重启进BIOS
  • 先把外频直接提升到250M,重启
  • 居然失败,BIOS报警CPU频率错误,恢复上次正确。我倒
  • 我记得技嘉的板子有专门的超频菜单来的,应该是按什么键,试来试去发现是Ctrl+F1,果然,主板高级选项出现了。

 

  • 找到NB NT Speed,先降到4x,因为外频之前是200M,乘以5是总线速度1000MHz,现在外频是250了,必须降一降NT。再锁定PCIE到100,省得显卡受影响。
  • 重启,没问题,进系统打开everest,主频250*10.5现在是2625.0了,HT正好1000,内存升到了375MHz,离DDR800还远,再来。
  • 胆子大一点儿,外频直接到280M,内存降到533,时序自动,重启。
  • BIOS没报错,进系统蓝屏
  • 手动设置内存时序5-5-5-15、Command Per Clock设成2T、Trfc0-3 clock设置成195ns(这个是上网查的,据说是命令延时神马的)
  • CPU加0.5v电压,重启,进系统,没问题,不过我感觉最好还是别加压了,万一在我换电脑之前烧坏掉了就毁了。
  • 重启外频降到270M,电压恢复默认,重启,没问题。
  • superπ测试了一下,没啥问题,温度也正常,到此为止吧,

 

好了,说一下结果,260.2*10.5=2731.9MHz,最后将近提升了30%

内存提到了396.3*2=792.6MHz 基本上到了DDR II 800的水平,挺好。

Win7评分整整提高了1分,非常不错呀

超频后Win7评分

而且不知道是不是心理作用,感觉反应快多了,哈哈哈哈

 

没想到时隔这么些年,居然把我的老电脑超出了一个不错的成绩。

 

 

页面:«1234567...13»

博客剩余工作

6,优化前台(YSlow) 2,404页面 3,IE6下兼容性问题很大 1,标签小工具行高有点儿问题 4,微博聚合 5,推广工作 7,CDN(cloudflare

分类

访问统计