编译AppInventor源码过程

AppInventor 简介

Google App Inventor是一个完全在线开发的Android编程环境,抛弃复杂的程式代码而使用积木式的堆叠法来完成您的Android程式。

AppInventor Github 地址:https://github.com/mit-cml/appinventor-sources
参考资料:https://docs.google.com/document/pub?id=1Xc9yt02x3BRoq5m1PJHBr81OOv69rEBy8LVG_84j9jc

编译流程

  1. 克隆git源码库:

     https://github.com/mit-cml/appinventor-sources.git
    
  2. 更新子模块:

     
     cd appinventor-sources
     git submodule update --init
    
  3. 使用ant进行build:

     cd appinventor
     ant
    

记一次翻译英文游戏有感

三年前,2014年6月。
我在某国外论坛上看到某国外独立开发者开发的一款游戏想要翻译成中文,看邮箱的来往记录推算那个时候应该是大二快暑假,当时我也不知道那个游戏到底是什么内容,反正闲着没事吧,就给帖子发起人发电子邮件说想帮他翻译,毕竟我对自己“聋哑英语”的水平还是比较有信心的。中翻英我可能会出错,但英翻中在“开卷”条件下,就不用太担心了,后来才知道这是个FLAG。之前也帮一些老外汉化过他们的软件,但翻译游戏是第一次(小学的时候借助金山快译翻译《暴力摩托》不算,233)。我记得那个时候我发朋友圈说过这事。
为什么时隔三年我又要提及此事,原因是三年前翻译了一堆文本之后,对方对我表达感谢以后就一直没下文了,我一度以为是那个开发者放弃开发这个游戏了,也不好去询问后续,所以我只当自己白忙活了。

- 阅读剩余部分 -

使用Visual Studio 2017中的C++标准库模块

关于C++ Module

C++目前有一个广受开发者诟病的由“Include”产生的一大堆复杂的嵌套以及一系列麻烦的依赖的问题,进而导致了编译速度极慢,而C++引入Module这一特性很大程度上就是为了解决这个问题,它的作用和用法与它在其它譬如Python、Java、C#语言中差不多。同时,C++ Module这一特性也是目前C++ 开发者呼声最高的特性之一,然而,遗憾的是,在C++ 17中并没有将Module纳入。只不过目前一部分C++编译器已经开始实验性地加入Module。

- 阅读剩余部分 -

迅雷路由器刷华硕固件重启wifi不启动的问题

问题

迅雷路由器刷了华硕RT-AC56U路由器固件以后,就算设置里面开启了WIFI,每次重启也必须手动开启,而不会自动开启。
带来了很大的不方便。

临时解决办法

没有工夫去研究华硕固件的源码,最简单的办法就是写一个脚本,开机自动执行该脚本启动WIFI。

echo '#!/bin/sh
sleep 10
nvram set wl0_radio=1
nvram set wl1_radio=1
nvram commit
service restart_wireless'>/jffs/scripts/init-start
chmod +x /jffs/scripts/init-start

这样重启以后开机就会自动打开wifi了

VestaCP切换nginx代理模板导致nginx无法启动的问题

问题

当我把VestaCP下的某个网站的代理模板切换到default然后再切换回cache的时候,nginx重新启动失败。
命令终端下重启nginx提示:

nginx: [emerg] the same path name "/var/cache/nginx/xxx.xxx" used in /etc/nginx/conf.d/01_caching_pool.conf:2 and in /etc/nginx/conf.d/01_caching_pool.conf:3

解决

去官方论坛询问以后得知,原因是官方的安装脚本忘了更新某个脚本的下载地址,导致其下载到有BUG的旧版本。
手动下载正常的版本替换旧脚本即可:

wget "http://c.vestacp.com/0.9.8/rhel/nginx-caching/caching.sh" -O /usr/local/vesta/data/templates/web/nginx/caching.sh