December 23, 2017 1 min read Nodejs下更好的本地require() 当你的Nodejs项目很大,并且有很多目录结构的时候(比如Express) 使用require()方法来载入其他文件看起来会像这样: var logger = require('../../../utils/logger); 这也鸡儿丑了吧! 在要是日后项目结构改变了,修改也很麻烦。 解决方案 1.使用模块 安装一个模块(这里使用app-module-path作为例子。 npm i app-module-path -s 在你的项目启动文件里加入: require('app-module-path').addPath(__dirname); 接下来,在其他文件里需要加载文件,就轻松很多了: var 继续阅读
August 12, 2017 1 min read Java Java通过反射实例化枚举 假设我们有一个像这样的枚举: public enum Status{ ON, OFF } 在某些情况下,我们需要通过反射的方式获得其中的某一个实例。 我们可以通过调用Enum中的valueOf方法,通过String获得枚举实例。 Class<?> statusClass = Class.forName("Status"); Method valueOfMethod = statusClass.getMethod("valueOf",String.class); Object onStatus = valueOfMethod.invoke( 继续阅读
July 09, 2017 2 min read 移除浏览器劫持脚本 昨天新装好的系统不小心执行了一些来源不明的程序,结果重启之后发现浏览器出问题了,无论打开什么浏览器,都会自动访问hao123网址导航,但自己浏览器设置的主页却不是这个。 嗯,这一看就是被劫持了嘛。我发现基本上所有浏览器快捷方式后面都加上了这个参数: http://hao916.com/?r=xlrnmdebjmxx&m=d5 真是不要脸的东西,原以为把这个参数删除就是了,但事实证明没有这么简单,重启之后它们又回来了。 于是参考了 中招了——WMI脚本劫持浏览器 - 知乎专栏 这篇文章,找到了解决方法。 移除脚本 WMI脚本是个藏后门的好东西,基本上很少有机会能想到它。 根据文章里的解释,需要先下载一个 继续阅读
May 21, 2017 1 min read MySQL 将MySQL从Antelope转为Barracuda Barracuda是MySQL的一种文件格式,它允许你压缩数据库。MySQL默认采用Antelope格式,关于他俩的区别,你可以在其他网站找到答案。 今天在安装Moodle的时候提示需要将数据库的文件格式换为Barracuda,所以分享一下过程。 首先,请先备份一下你的数据库,以免出现什么意外。 然后,执行以下两句SQL: SET GLOBAL innodb_file_format = barracuda; SET GLOBAL innodb_file_format_max = barracuda; 大功告成。 继续阅读
January 19, 2017 1 min read Ionic 解决Ionic创建项目时出现的一个错误 今天在学习Ionic的时候,在创建项目时出现了一个问题: $ ionic start Test --v2 Creating an Ionic app in /home/lss233/IonicProject/HelloWorld based on the tabs template. Downloading: https://github.com/driftyco/ionic-app-base/archive/master.zip Downloading: https://github. 继续阅读
January 19, 2017 1 min read Linux 使用Polipo将Socks代理转换为Http代理 Polipo是一个支持Ubuntu/Debian系统和MacOS系统的代理转换工具,它能让你的Shadowsocks或者SSH代理拥有Http proxy协议。 安装 MacOS $ sudo port install polipo Ubuntu/Debian $ sudo apt install polipo 使用 假设我们使用了Shadowsocks作为代理,它监听在localhost:1080上。 快速使用 $ sudo polipo socksParentProxy=localhost:1080 执行上面那个命令,polio将会在127.0.0.1:8123创建一个HTTP代理, 继续阅读
December 17, 2016 2 min read HTML 自定义CNZZ网站统计样式 之前想在自己的网站加一个统计访问人数的功能,但是又懒得创建一个数据库来保存数据。这个时候突然想起CNZZ有一个显示访问信息的代码,于是就直接通过它来改了。 0x01 首先,需要去CNZZ 开启“数据形式”代码功能,然后看一下浏览器的地址栏,把SiteID记下来,就是地址栏中 siteid 背后的那串数字。 0x02 删除页面中原有的CNZZ统计代码,换成下面这段代码: <span id="cnzz_stat" style="display: none;"> < 继续阅读
December 17, 2016 1 min read Linux 安装完Raspbian之后需要做的几件事 昨天为了在我的Raspberry Pi上玩Minecraft(教程看这里),我把Pi给玩坏了。无奈之下只好重装系统,备份完文件重装之后,发现有很多东西需要设置。 修改软件源 软件源我觉得还是科大的速度快,我的Ubuntu用的也是科大的软件源。 sudo sed -i 's|http://http://archive.raspbian.org/raspbian/|http://mirrors.ustc.edu.cn/raspbian/|g' /etc/apt/sources.list sudo 继续阅读
October 15, 2016 1 min read 解决设置osTicket邮箱时出现的STARTTLS问题 前几天在设置osTicket发件邮箱的时候,出现authentication failure [SMTP: STARTTLS failed (code: 220, response: 2.0.0 Ready to start TLS)]错误。 国内百度搜索无果后,在osTicket的官方论坛上找到了解决方案 : 进入osTicket的include/pear/Net目录,打开Smtp.php。 修改第467行,将 if (version_compare (PHP_VERSION, '5 继续阅读
October 05, 2016 2 min read Java FileChooser (JavaFX的文件选择对话框) FileChooser类 提供了标准平台文件对话框的支持。这些对话框拥有JavaFX的外观效果。 一个FileChooser可以用来调用文件打开的对话框选择单个文件(showOpenDialog)、文件打开对话框中选择多个文件(showOpenMultipleDialog)和文件保存对话框(showSaveDialog)。显示的对话框的配置由的值来控制FileChooser相应的之前设置的showDialog属性方法。此配置包括该对话框的标题,对话框和列出的文件扩展名过滤器(S)中显示的初始目录。对于价值尚未确定明确的配置属性,显示的对话框使用他们的平台默认值。一个对话框显示方法的调用被阻塞,直到用户做出选择或取消对话框。如果对话框被取消,将返回null*. FileChooserDemo.java: package top.lss233.demo; import java.io.File; import javax. 继续阅读