迁移至Azure

由于在微软就职,所以每月都有一定额度的Azure使用权,故此将整站一股脑迁移到了Azure(US)上的新VM上 相比DO的VM,Azure的优势在于: 不花钱,尽管实际上当前VM实例的价格是此前DO实例价格的小30倍 计算核心++ 磁盘+ 内存+++++++++++++++++++++++++ 网络带宽+++++++++++++++++++++ 同时,HayDay Panel也迁移到了这里,由于毕业+入职的忙碌期,很久都没有更新过的数据也会在下周结束前进行更新,后续的开发工作也会缓慢的进行,敬请关注。...

HayDay Panel试运行

距离上次决定暂停活动更新的博客发布已经过了三个月了, 近期不断收到四面八方的利好消息(例如不盲审了),撒个花O(∩_∩)O 心情好多了,压力也小了不少,作为代价,头也发掉了一些O_Q(但是我知道我正在变强!) 抽出了一个晚上的时间,用了极其原始的技术栈做出了HayDay Panel的初版, 未来的活动预告、游戏参数信息都将借助HayDay Panel发布(终于自动化了>_<) 目前是最初最初的版本,只包含活动预告 那么,Enjoy it!  点此访问

写了个给LeetCode用的Chrome插件

写了个给LeetCode用的Chrome插件
近期刷LeetCode,作为一个0氪(那个订阅真的太贵- -,讲道理,我觉得还不如搞成太鼓达人曲包的模式,按题收费),就算使用过滤器过滤掉Solved Problems,依然有一大堆Unsolved Locked Problems堆在列表里,要找可以做的题非常费眼,十分恼人。于是想到用浏览器控制台脚本直接把有带锁图标的那一行删掉,于是有了这个Gist。 不过受此启发,干脆一不做二不休,做成Chrome插件,造福大众(我自己_(:з」∠)_),网上稍微翻了翻Chrome插件的文档,感觉还是比较简单的,用自己半生不熟的二手jQuery脚本写了这个插件: 最新版下载 https://github.com/Blueve/LeetCodeUp/releases 源代码 https://github.com/Blueve/LeetCodeUp 效果如下所示: 该插件会在题目列表上面增加一个Show Locked Problems复选框,默认不勾选,也就是隐藏掉氪金题目。然后下方是我

Double v.s. Float

Double v.s. Float
最近在做自己的玩具项目Physics2D的时候,对Vector2D是应该使用float还是double类型纠结了很久,通常来说(特别是在学校教学当中),大家都会直观的认为float精度输给double,但是速度会远胜于double,毕竟double比float位数长那么一大截,可实际上真的是这样么?昨天阅读了老赵的博客文章,正巧看到了一个不错的CodeTimer实现,空想没用,干脆用实际测试到的数据说话。 下表为微软给出的两个类型的表示范围以及精度,作为一个参考先放在这里: Type Approximate range Precision float ±1.5e−45 to ±3.4e38 7 digits double ±5.0e−324 to ±1.7e308 15-16 digits   我编写了5组测试用例,分别对应加、减、乘、除以及混合的运算,代码如下所示: [crayon-59c1e39eb47db2798684

Hay Day Decoder 1.0发布

Hay Day Decoder 1.0发布
这个东西其实已经做出了很久了,不过由于是为了方便自己使用的工具,所以一直都是命令行程序,虽然早早地开放了源代码,但是又有没有公布编译好的版本并且也没有用户界面,所以很多朋友也无法使用。上一周心血来潮,做了个简单的用户界面,并且适当调整了下代码,现在就公布出来,并给出使用说明。 编译好的版本下载地址为https://github.com/Blueve/HayDayDecoder/releases 需要注意的是,要运行该程序,系统需要已经安装了.Net Freamwork 4.5,通常来说如果你用的是Windows 8以上的操作系统,系统都已经自带了这个框架。Windows XP应该是无法运行本程序的。 安装好的程序可以通过“控制面板” – “添加或删除程序”被完整的卸载。 如果你用得开心,欢迎给我的这个项目点个赞(如图所示加个星星),也欢迎有能力的同学协助我完善这个项目,增加更多方便的功能(例如增加数据浏览窗口、语言包载入功能等)。   在使用中如果发现程

有趣的Metaball — 渲染及优化

有趣的Metaball — 渲染及优化
近来由于某些门课程设计,重拾了之前本博客中“物理引擎”系列,以C#作为平台重新实现,并且加入了一些可靠的设计模式,从而比以往的设计更加易用。在制作过程中,突然想要用粒子模拟“水”的效果,于是查阅了很多资料,SPH之类的物理算法还在研究,但就水本身的渲染而言,利用Metaball算法则是能够立竿见影的看到效果,下图就是实际效果:   本文谈论的Metaball是2D范畴的,3D范畴的Metaball和2D的Metaball原理是一致的,但是具体的算法及优化上是有一定的差异的。 首先来了解,什么是Metaball?下图来自于Metaball的Wiki页面:   Metaball算法,可以创造出多个形状光滑融合的效果,看上去就像是水滴融合一样,通过使用Metaball,可以模拟水面、颜色融合、变形球等等酷炫效果,如果你玩过LocoRoco或者黏黏世界,那么你就一定见过Metaball。 Metaball的原理很简单,Metaball的本质不是...

Raspberry Pi – LCD 用户界面实现

Raspberry Pi – LCD 用户界面实现
我在上一篇文章写了一段用于获取系统状态的Python代码,同时还放出了一个Demo视频,在本篇文章中我就将介绍一下实现这一系统的主要思路和代码框架。首先,下面上正式版的视频: http://v.youku.com/v_show/id_XNzc0Njc3NTE2.html 看完了成品,那么我们就来一步步分析,这个东西是如何做出来的,Adafruit提供的LCD Key Pad的驱动程序提供了一些很基本的使用这个板子的方法,其中最为核心的就是: 在屏幕上显示文字 清空屏幕上的文字 获取按钮的使用状态 有了这些,我们就具备了对这块屏幕几乎于完整的操控能力,那么实现一个有菜单、能调用相关功能的UI就变成了纯粹的软件问题。考虑到这个程序只是简单的调用系统指令,并不具备复杂的功能,所以我采用状态机来实现UI的整体逻辑,关于选用它的优点,也会在下文中提到的。先不要被状态机三个字吓到,来看下面这个图: 不要觉得这个复杂哟,跟我一起来解读一下你就能理解了。这个图描述的是LCD ...

Laravel框架实战:增加表单专用Model

随着进一步使用Laravel框架,感觉也需要对MVC模式进行重新的梳理。在原有的代码中,网页上的表单提交后,在控制器中是通过: [crayon-59c1e39eb60d7248887699/] 来提取,取得的内容为表单的name => value键值对,随后我们再在控制器中编写相应的校验规则来对这些参数的合法性进行检验,并根据检验结果来控制页面的跳转。然后随着这样的代码越写越多,我们也就发现了这样写法可能会带来的问题: 当表单发生变化的时候,必须要找到表单action所对应的控制器的对应代码来进行修改; 需要通过使用Input::All()数组来获取内容,这使得代码中势必要出现大量的Magic string,不利于系统未来可能发生的重构; 针对表单->实体模型的转换,每种转换都需要在Controller中编写,在修改转换逻辑的时候会造成不便(例如,用户注册的表单并不是直接和数据库中的用户表对应的,用户注册表单的数据需要一定处理后才能被存入数据表) …… 这些主要就是...