• 面向虚拟机Wake-on-LAN的Windows服务开发

    为什么是虚拟机WoL?

    我有一台HP MicroServer Gen8服务器,操作系统是Windows Server 2012R2。上面跑了一个VirtualBox的CentOS虚拟机。有的时候我需要通过WoL启动宿主服务器,再启动虚拟机。但我并不是每次启动服务器后都立即启动虚拟机,所以最佳的方式是启动一个服务来监听WoL报文,一旦有匹配上虚拟机MAC的WoL报文达到,就启动虚拟机(通常是采用命令行在后台启动虚拟机,没有窗口界面)。但这个需求似乎很小众,GitHub上这类项目不多,且都是8~10年以上的老项目,还都没有实际代码。另外有一个Wake-On-LAN Virtual Machine,功能完美匹配我的需求,但我从来没有成功启动过,而且这还是个收费软件。

    没办法,只能自己造轮子了。但普通的Windows服务开发我打算略过,我也不过是看了几篇博客和微软的官方文档。这里重点记录一下开发过程中的遇到的一些坑。

  • Hexo博客部署出错

    很久没有写博客了,突然发现部署到github都出问题了。这个配置我没有动过,不知道什么原因。在网上搜索了很多资料,现在问题解决了,记录下来。

  • 油猴脚本开发环境搭建

    在油猴脚本的浏览器扩展中直接编写脚本并不是最佳的开发模式,除了将开发中的脚本在扩展中用@require关键字进行引用后,用VS Code等编辑器进行开发。本文更进一步,在UglifyJS的支持下提升开发体验。

  • 如何在Ajax请求执行完毕后再运行代码

    背景

    我们都知道,Ajax是以异步方式从服务器取回数据并在页面上进行动态更新。但有时我们会遇到程序后续的操作依赖于前面Ajax的结果,这时一种简陋的方法是用同步方式发起请求。但这既违背了Ajax的初衷,同时在处理较多数据时也会造成浏览器假死,甚至被浏览器弹窗告警。我认为这种方式只能在获取数据量或发起的Ajax请求数量已知且较少的情况下使用。在ES6的时代,我们可以使用await/async方法来完美解决。

  • dmake,一个文档编译工具

    工作中被反复修改的文档搞破防了。这些文档有一个特点,就是同一段文字会多次出现在一个或者多个.docx文件中。于是在破防之余,开发了这个dmake工具,用于从Markdown文件编译生成需要的.docx文件。

  • VirtualBox中Windows7虚拟机运行缓慢的解决办法

    两三年之前装过一个32位的Windows XP,那时虚拟机用的还是VirtualBox 5.1.x,运行上无任何问题,十分流畅,虚拟机的屏幕分辨率也可以达到2K。最近需要安装一个Windows 7的虚拟机,心想跟以前安装的也不会有什么区别,怎料想这个64位的Windows 7虚拟机着实折腾了我两三天。其中查阅了好些博客,最终还是在VirtualBox的官方论坛上找到了原因和解决办法。

  • 使用NodeJS进行截图

    需求

    工作中,产生了这样一个需求:想要访问一个网站,并在3个及以上的URL下全屏截图保存到本地。初步了解了一下这方面的现成方案:

    1. 使用Chrome –headless
    2. 使用puttepeer,这是方案1的进阶版

    但是很可惜,经过进一步的与对方沟通,他们要求不仅是把网页截图下来,还需要把浏览器,包括地址栏都要截取下来,防止上级部门怪罪下来说他们伪造截图。这样上面的两种方法就都行不通了——它们都只能截取网页本身,也就是<html> …… </html>标签之间,渲染后的图片。
    想着本来都已经把puttepeer安装上了,也懒得转Python了,索性就NodeJS三两下搞定吧。

  • Hello World

    Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, yo...