利用NAT64和DNS64技术为网站添加IPv6支持

在IPv4资源越来越紧张,GFW越来越高的情况下,IPv6是大势所趋。

NAT64\DNS64流量图

目前对于VPS,可以利用HE IPv6 Tunnel Broker实现网站对IPv6的支持,类似的教程也有很多。但这种实现方法有一定的局限性,第一要求必须是VPS,无法运行shell的虚拟主机等无法实现;第二对虚拟化有一定的要求,对操作系统也有要求,不一定完全支持;第三因为需要root权限,对于合租之类也有其不便之处。
在这里我要介绍一种办法,仅需要在DNS中添加一个AAAA记录即可实现对IPv6的支持,方便快捷。

继续阅读全文

使用财付通境外支付免信用卡注册Amazon Web Services

Amazon公司推出的Amazon Web Services(AWS)面世已经时间不短了,作为全球最著名的云服务提供商,提供了免费使用一年的优惠政策。特别是EC2加入了东京和新加坡结点,访问速度快,成为非常适合小型网站的入门级VPS。本网站(https://malash.me/)目前已在AWS上托管了近一年之久,期间运行较为稳定。

不过美中不足的是,AWS服务的注册必须绑定VISA、MasterCard、American Express等国际信用卡,不支持国内最为流行的银联。而对于很多人来说获得一张信用卡还是比较困难的,因此无法体验到AWS的云服务。
使用财付通境外支付免信用卡注册Amazon Web Services

为了解决这个问题,我尝试使用财付通提供的国际支付功能生成美国运通(American Express)虚拟信用卡,进一步成功开通了AWS账号。使用这种办法,仅需要有普通银行储蓄卡即可,非常方便。

财付通生成的美国运通虚拟信用卡

财付通生成的美国运通虚拟信用卡

继续阅读全文

物理实验计算辅助工具PhyCacl

PhyCacl是基于网页的物理学实验计算辅助工具,可以便捷快速的完成多种数据处理问题,如一元线性回归、逐差法等。目的是方便大学生完成大学物理实验的实验报告数据分析。

项目网址:https://malash.me/project/phycacl

PhyCacl

PhyCacl首页截图

截止目前(2012年11月9日)最新版本为v0.2版。

本项目由本人(Malash.me)和Karezi编写。目前处于测试阶段,后期将开源并做项目托管。

这篇文章主要从技术的角度说明一下PhyCacl的原理。

继续阅读全文

301次重定向与404个错误

最近研究Web和SEO,为了更好的让网站被搜索引擎收录所以注册了Bing的网站管理员工具

Bing的网站管理员工具正题感觉上还是不错的,提交URL、提交Sitemap、抓取控制这些常用的功能都具备且可以正常使用,同时还有一些其他网站管理员工具没有的的功能,有些还是比较实用的。比如在报告与数据中有一个索引资源管理器功能,能够按照目录显示网站结构,还是比较直观的。

不过,这个就比较雷人了:

301次重定向与404个错误

301次重定向与404个错误

继续阅读全文

CSS3实现Gmail风格滚动条

经常使用Chrome浏览器浏览Gmail的朋友应该会发现,Gmail在显示比较长的内容时的时(比如常常的邮件列表或者联系人列表),右侧会出现一个灰色调的滚动条,风格与系统自带的完全不同。

Gmail滚动条和普通滚动条的对比

从左至右分别为普通状态、鼠标移动至滚动块上和拖动滚动块时Gmail滚动条和普通滚动条的对比

继续阅读全文

为WordPress添加内存级缓存

WordPress是目前最为通用的博客平台,据统计现在80%的独立博客是由WordPress搭建的。但是,WordPress占用CPU资源巨大,生成一个普通页面常常涉及几十个SQL查询和秒级的运行时间,因此对WordPress进行动态页面静态化成为优化性能的最佳选择。

现在使用最为广泛的缓存插件当属WP-Super-Cache,性能较高且功能强大,能满足大部分需求。但是,WP-Super-Cache使用硬盘作为缓存介质,在面对大流量访问时会受限于硬盘IO。因此Batcache、Super Cache Plus等内存级缓存插件产生了,但由于其配置稍显复杂且使用上不如WP-Super-Cache顺手,并未得到广泛的普及。

在这里我要介绍一种在Unix/Linux服务器上实现内存级缓存的简单方法。
继续阅读全文

为什么不建议在C语言中连续使用自增自减运算符

相信很多coder在学习C语言(包括C++)的过程中都听说过这样的建议:慎用自增自减运算符。

这是因为,在函数参数或者表达式中多次调用自增自减运算符很可能产生“不可预知的结果”。究竟有多不可预知呢?请看这样一个程序


#include

int main()
{
    int c, res;
    c = 5;
    res = (++c) + (++c);
    printf("%d %d", c, res);
    return 0;
}

继续阅读全文