Mediawiki清除全部缓存

(果然百度是不收录https的站点呢,我的wiki百度完全不收录呢QAQ

最近建立了minecraft中文开发wiki虽然没有被百度收录,我倒是练习了不少mediawiki的使用,在使用mediawiki的时候如果你开启了缓存,如果你修改了一个模板页面,引用了模板的页面的内容不会立刻改变。为了更新页面的内容,你不得不手动清除缓存。

清除缓存的最简单的方法就是添加purge参数,但是这样一次只能清除一个页面

google一下发现还专门有清除缓存的插件……果然这是个棘手的问题呢。后来我竟然在百度中找到了一个暴力的解决方案:直接清空缓存的数据库!!!亲测有效,简单暴力

现代浏览器js跨域

js跨域一直是一个让人头疼的问题不过现代浏览器有一种针对API的解决方案就是Access-Control-Allow-Headers。

你可以通过Access-Control-Allow-Headers来控制允许哪些域的js来访问此资源。不过这中方法只是一个折中的方案,如果说使用起来还不如普通的跨域好用。并且ie11以下浏览器并不支持。

不过对于那些开放的API最好还是加上这个头。

nginx可以通过下面的一行来加上这个头,不过域名最好还是限定一下。
add_header Access-Control-Allow-Origin *;

Event与Message的区别

以前在开发的时候一直在混用这两个单词,完全没有咬文嚼字的区分它们,直到今天被某文档打脸之后……现在就写一下event和message的区别

百度了一下,上面的主流的说法是:
Message的来源是外界输入产生的,而Event的来源不仅包含Message,也包含通过变换Message得到的。除此之外,event通常在进程或者线程的同步中使用,而message通常在gui窗口中使用。(大概只限于native windows开发吧)

而Google了一下,得到的结果大概还是有一定的差别的。
根据StackOverflow的说法来讲,(在android开发中),Message是在相互独立的进程中沟通使用的。而更为主要的是一个是通过消息队列实现的,另一个是通过延时发送实现的
根据康奈尔大学的文档来讲:(在JChannel中),event是在栈内的通信,而Message是跨栈的通信

于是瞬间我凌乱了……好吧,大概这个的区别不是很大,在不同开发中还是要查文档(吐血

Minecraft中文开发wiki上线

经过一阵强烈的脑洞,于是前一段时间搭建了一个Minecraft中文开发wiki。后来在Seaform的赞助下搬迁到独立的域名。由DarkYoooooo绘制了wiki的logo。

出于安全因素的考虑,wiki全面启动了https,结果遇到了脑残百度不识别https的情况(没办法,只能放弃百度了)。这么多天Google还没有正式收录也是弄得我很闹心。

总之,不管怎样,多谢大家。欢迎大家来wiki并且贡献自己的知识。

https://mcdev-wiki.org/

通过iframe引用b站站内播放器

b站的站外播放器不是一般的难用,如果想要在自己的网站之类的嵌入b站的视频,人们通常会想要使用站内播放器,然而由于b站的swf有根据域名进行判断的功能,所以正常情况下很难嵌入站内播放器。
在以前的时候b站的播放器是在一个iframe里面,可以通过那个iframe来直接调用站内播放器,但是在上个月b站用户中心改版之后这个接口就被堵上了。于是只能依靠其他方法来欺骗swf的域名的检测了。
很自然的就会想到用iframe加载swf可不可以,经过查找,确实有这么个api,但是服务器会根据浏览器的信息进行判断,如果是站外的话就会返回空页面。现在破解的思路就很明确了:去掉客户端refer信息并且访问这个页面。
我曾经尝试了使用https,但是由于目标域名也是https所以无效。最终想到了下面的解决方案:

  • 建立一个新的html页面,作为iframe的页面使用
  • 在主页里面添加一个iframe,并且设置宽度和高度
  • 在建立的html页面里面添加一个超链接

下面放一个示例页面(附送acfun的站外播放

三个meta优化你的网站在国内的表现

现在html5技术当道,恶心的ie还在国内占有相当大的市场,其中很重要的部分就是某些浏览器的ie内核。这些浏览器一般都有webkit内核进行另一种渲染。下面三个meta信息能够让国产浏览器使用webkit内核的同时使用最新标准,并且让百度停止手机转码。

克鲁斯卡尔算法求解最小生成森林

前两天ICM的时候用到了克鲁斯卡尔算法解最小生成森林,不过当年NOIP学的基本都忘光了。写的不是很精练,全当练手了,有需要的就拿去啦

HTML5全屏检测

前一段时间HTML5也算是定稿了,CSDN之类的网站也对全屏API进行了部分介绍。但是查了中文资料就没有全屏检测的。下面给出完整的全屏以及检测的方式

flex播放视频

消失了好久,一直在做数学建模比赛,终于抽出一些时间来了。来更新一下。大概下一段时间我应该能放出不少源代码吧(其实我是一直懒得上传Github……


 

现在U2B已经正式使用html5的视频播放器作为默认视频播放器,不过由于各种原因国内的视频源绝大多数视频都是flv作为容器的,没有办法被html5的video标签播放,最近的弹幕播放的项目逼得我去学习那过时的flex技术。什么都不说了,上代码好了。flex4不支持。

花生壳站长的灭顶之灾:未来家庭宽带没有公网ip

这两天电脑坏了,一下子错过了好多热闹事啊。用的vpn的服务商也跑路了,gfw又封了蛤蟆吃,ccf又作了大死……最震惊的消息是国内家庭宽带可能在今年四月之前完成转换,用户ip将全为以10开头的内网ip

这条消息是从google+上面看到的,某未知人士称上面的通知,今年四月之前家庭宽带将会停止使用公网ip。不过这也是必然事件呢,自从ipv4地址耗尽之后必须出来一个解决方案来应急。不过这回的改动如果属实的话那些用花生壳私自建站的站长就彻底遭殃了。问题的解决还是要依靠ipv6,然而据我所知国内绝大多数的家庭宽带是通过廉价的路由器进行接入,然而,那些主流的路由器完全不支持ipv6。未来OpenWRT的路由器应该会更过吧,大概。