第 1 页,共 2 页

噩梦24小时:记一次服务器迁移与宕机过程

有句俗语叫:If it ain't broke, don't fix it. 今天真是见识到了。0x0000 起因在昨天(2月8日) 17时,本人收到了Cloudcone发来的春节优惠邮件。在一番激烈的思想斗争下,下单了一个看上去更便宜的套餐。打算把服务器迁移过去。0x0001 噩梦几分钟后,服务器创建完毕。发现控制面板居然没有像搬瓦工那样方便的服务器迁移菜单,自己又懒得手动迁移,于是就发了份工单给客服询问有没有什么办法。17:...

新技能学习:教你如何阅读Java字节码

Java字节码是由 .java 文件通过Java编译器编译成 .class 文件所包含的代码,我们通常使用的Java程序就是通过Java虚拟机执行Java字节码来得到的效果。 既然我们可以口算MD5、手算二维码,这篇文章就来讲讲眼看Java字节码吧! 0x0000 - 准备工作 在开始学习之前,请先准备好下列工具: 1. 一款支持HEX格式的编辑器,如 Sublime Text(推荐)、Ultra Editor等。 2. 一个Java环境开发环境,...

让我们用PGP进行安全地交流吧!

如今的互联网,用户已经毫无隐私可言。咱经常都能看见各种信息泄露的新闻。谁能保证咱使用的软件、网络甚至是设备没有被什么人监视着呢? 为了保证隐私安全,PGP诞生了。 这篇文章将会让你了解如何在你的设备上配置与使用PGP加密邮件,让我们开始吧~ 0x00 PGP的前世今生 什么是 PGP ? PGP(英语:Pretty Good Privacy,中文翻译“优良保密协议”)是一套用于讯息加密、验证的应用程序,采用IDEA的散列算法作为加密和验证之用。 PGP加密由一系列散列、...

你好,2019

一年又一年,告别2018,迎来2019。这是一篇年末总结,列出了我在2018做过的事情,以及对2019的展望。...

{0x13} Phoenix模块开发教程:命令系统

碎碎念... 关于命令系统的构思,我采用了一些Web框架的路由设计。 他们是像这样的: 注: 这个例子用到了Rapidoid Web框架。 所以我在Phoenix中也引入了这种设计。 可以说,这部分是最让我引以为豪的地方了。 这篇文章属于Phoenix Framework 入门教程的一部分。 注册一个命令执行器 咱建议,在插件被启用的时候就马上让Phoenix给我们的模块注册监听器。所以,在我们项目主类的onEnable()方法下,写上这么一行: Phoenix.getCommandManager().registerCommand(this,...

浅谈 Java 9 的模块化系统

什么是模块? 一个模块是代码的集合。它以依赖关系的形式持有类,数据和其他模块。它与JAR文件类似,但更好。每个模块都包含一个module-info.java文件,它可以让我们明确地设置必要的信息。包括它依赖的其他模块以及其他模块可以访问的内容。 这是一种更好的方式,可以为程序员共享代码并进行协作减少一些兼容性的问题。 如何使用模块? 一个模块包含一个module-info.java文件 ,它包含了模块的基本信息,比如它依赖哪些模块、它的哪些部分能被其他模块访问等。 最主要的关键词是requires和exports。 现在,我们来写举几个简单的例子: module Decoder { requires...

使用lss233源加快Minecraft插件/Mod开发

记得最开始使用Maven的时候,基本上大部分时间都花在寻找依赖和下载依赖上。 许多API的作者也都是把自己的工件放在自己的maven仓库上, 如果你使用maven,那么你不仅要在pom.xml中写dependency,还要写一个repository。 有些仓库在国内访问还很慢,这大大降低了开发效率。 如果你现在正为此苦恼的话,那么试试我搭建的仓库吧! 介绍 仓库地址:https://lss233.com/artifactory/minecraft 这个仓库镜像了以下内容: Spigot的Snapshots (主要包含了spigot-api, bukkit-api) Spongepowered (主要包含了spongeapi,...

Ghost Alpha主题发布

Ghost Alpha 是本人为Ghost写的第一个主题,前端主要采用Vue编写,主题基于来自HTML5 UP的Alpha 安装 您可以在Github的Release页面下载这个主题的最新版本。 解压下载的.zip文件,将里面的文件粘贴至您Ghost的content/themes文件夹中,然后重启您的Ghost 您需要在Ghost的Labs中开启Public API。 配置 您可以在这个主题的assets/js文件夹下找到一个名为config.js的文件,将里面的值换成你自己的。 更新日志 2018/6/22...

{0x00} Phoenix模块开发教程:准备阶段

Phoenix是使用Java进行开发的插件框架,因此,标准的Phoenix插件也需要使用Java进行开发。 在进行Java开发之前,我们需要准备好JDK和IDE. 0x01 准备JDK 这篇文章属于Phoenix Framework 入门教程的一部分。 Java Development Kit,就是我们平时所提到 JDK,是开发 Phoenix模块所必须的。 由于Phoenix使用了Java8进行编写,因此你只能选择Java8或其以上的JDK版本。 同时,要想正常使用Phoenix,你也必须使用Java8或其以上版本的JRE. 旧版本的Java(如Java7)...

{0x11} Phoenix模块开发教程:创建你的项目

在你完成之前的准备工作之后,咱就可以开始进行Phoenix Module的开发工作了。 这篇文章属于Phoenix Framework 入门教程的一部分。 这篇文章将会引导你通过使用IntelliJ IDEA、Gradle 创建一个Phoenix Module项目。 0x00 介绍Gradle Gradle是一个构建工具,它可以帮助你管理项目依赖、打包项目等。 拓展阅读: 如何通俗地理解 Gradle? - 知乎 0x01 介绍 Intellij...

关于DarkSky

从DarkSky解散到现在差不多已经有半年的时间了。过了这么久,也应该有一个总结了。 其实解散在很久以前就是必然的事情,我所谓的恶性竞争只是一个借口罢了原因其实有很多: 软弱。这也许是我当不成合格的领导者的主要原因。作为团队领导者,我本应该指挥大家执行任务,但是因为这个原因,我做不到。 选人不严。记得当时招募了很多人,不过来越觉得没有什么用。虽然人是很多,但是真正能做事的又有哪些呢。我在选择招募的时候,基本上完全忽视了自己先前定下的规矩,以至于招到了一些没有意义的人。 总而言之,DarkSky的经历让我学到了很多,希望来年能更好地发展吧。...

Nodejs下更好的本地require()

当你的Nodejs项目很大,并且有很多目录结构的时候(比如Express) 使用require()方法来载入其他文件看起来会像这样: var logger = require('../../../utils/logger); 这也鸡儿丑了吧! 在要是日后项目结构改变了,修改也很麻烦。 解决方案 1.使用模块 安装一个模块(这里使用app-module-path作为例子。 npm i app-module-path -s 在你的项目启动文件里加入:...

lss233 lss233
1 min read

Java通过反射实例化枚举

假设我们有一个像这样的枚举: public enum Status{ ON, OFF } 在某些情况下,我们需要通过反射的方式获得其中的某一个实例。 我们可以通过调用Enum中的valueOf方法,通过String获得枚举实例。 Class<?> statusClass = Class.forName("Status"); Method valueOfMethod = statusClass.getMethod("...

移除浏览器劫持脚本

昨天新装好的系统不小心执行了一些来源不明的程序,结果重启之后发现浏览器出问题了,无论打开什么浏览器,都会自动访问hao123网址导航,但自己浏览器设置的主页却不是这个。 嗯,这一看就是被劫持了嘛。我发现基本上所有浏览器快捷方式后面都加上了这个参数: http://hao916.com/?r=xlrnmdebjmxx&m=d5 真是不要脸的东西,原以为把这个参数删除就是了,但事实证明没有这么简单,重启之后它们又回来了。 于是参考了 中招了——WMI脚本劫持浏览器 -...

lss233 lss233
2 min read