现代浏览器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学的基本都忘光了。写的不是很精练,全当练手了,有需要的就拿去啦

flex播放视频

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


 

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

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

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

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

 

软件无线电SDR入门

电脑终于修好了,来更新一下博客……这两天玩了玩软件无线电,于是就来介绍一下


 

所谓软件无线电、软件定义无线电就是依靠软件来处理无线电数据的技术,捕获芯片捕获原始的数据而计算机对原始数据进行进一步分析。这样通过软件你可以轻松搭建自定义的射电监控平台

软件无线电的开源硬件平台是大名鼎鼎的HackRF,但是很不幸,这块板子的价格不是一般人能够承受的。然而那些Hacker或者Geek老外自制了黑科技来玩。他们发现Realtek的某些做电视棒的芯片很适合做SDR,于是他们就做了一系列黑科技软件。不过为了接收射频信号我们还是需要对电视棒进行改造啦(注意,这里指的电视棒并不是那些拿来收看网络电视的天朝黑科技,那种只是天朝的JS们骗人的东西。如果你不知如何购买可以去某宝搜SDR+电视棒)

电视棒的改造也很简单,具体的就是重新接一下射频的输入头。不过你要是需要短波的输入,你就需要某些黑科技来实现啦。


玩了SDR之后发现无线电果然是三烧之一啊,银子花花的就用掉了wwwww

 

吐槽一下华硕的笔记本的电源设计

一件非常不幸的事情发生了:我的笔记本主板的电源模块烧毁了。随便就在这个地方说一说华硕主板电源的设计的一些缺陷。

华硕主板的供电大概是在电源适配器的输出之后分成两路,一路给15v的电池充电,另一路应该是减压之后给整个主板使用。如果你尝试着把话说主板的电源输入的正负极短接的话,非常不幸,你的电脑会瞬间掉电。由于某些非官方的电源适配器的接头的金属面积可能更大,有的DC插头在华硕笔记本的电源插口里面就会有短路的风险。并且从实际来蓝我已经短路了好多回了。

没有短路保护是一个问题,更致命的是没有反接保护!由于返接的时候电流相当大,瞬间主板的电源模块就烧毁。

总之不管怎么说,华硕的主板的电源模块设计是在是太潦草了。

 

谨以此文纪念我坏掉的电脑wwww