Code

DAVx5无法开启OpenTasks/Tasks.org权限的问题

小米6手机(MIUI 11 20.1.16)中使用 DAVx5 显示缺少权限、无法同步 Tasks/OpenTasks 中任务。并且在 “设置” -> “应用权限” 中点击 “OpenTasks权限”/“Tasks权限” 开关无法打开。查看 DAVx5 日志发现以下四项权限被禁止:

  • org.dmfs.permission.READ_TASKS: denied
  • org.dmfs.permission.WRITE_TASKS: denied
  • org.tasks.permission.READ_TASKS: denied
  • org.tasks.permission.WRITE_TASKS: d[……]

    继续阅读

Docker容器的本地化

前言

Docker 容器多用于部署、运行程序或服务,像开发的 Web 应用之类的程序的本地化可以交给容器中运行的程序完成,毕竟用户不会直接操作容器中的 Linux 系统。从这点看,将 Docker 容器本地化似乎是多此一举,但 Linux 中的许多程序可能使用 Linux 的本地化库实现多语言功能,这时程序就需要使用 Linux 的本地化设置。如果想让这些程序在容器中显示正确的语言文字,就必须配置好容器中的 Linux。

本文将给出简单方便的解决方案,不需要安装 locales/locales-all 之类的包、甚至不用改动任何文件。

Linux 的本地化

[……]

继续阅读

第二届江西省高校网络安全技能竞赛之AWD参赛小结

2019年12月6日,第二届江西省高校网络安全技能竞赛随着致辞与颁奖的结束落下了帷幕。

此次AWD比赛感觉上偏向于Web渗透或者说是PHP代码审计,前两台服务器开放端口基本只有22、80和3306。第三台情况未知,毕竟我们队能力有限无暇顾及,想来最后应该没有一个队伍解出第三题。

而我主要负责第二题,这里就对此次参赛做个简单的总结。

环境

Linux系统基本信息如下:

$ uname -a
Linux ubuntu 5.3.0-050300rc4-lowlatency #201908111734 SMP PREEMPT Sun Aug 11 21:41:13 UTC 2019[......]

继续阅读

Python3创建virtualenv环境时提示vcruntime140.dll丢失

环境:

  • Windows 7 SP1
  • Python 3.7.0
  • virtualenv 16.6.2

 

使用 virtualenv venv  命令创建虚拟环境的时候弹框提示计算机中丢失 VCRUNTIME140.dll 。查了一下,需要安装Microsoft Visual C++ 2015 Redistributable

安装完后再次运行,结果相同。于是到 C:\Windows\System32  中找了找,发现目录里是有 VCRUNTIME140.dll 文件的。

重启了一下电脑,也是如此。

 

根据输出和弹框的[……]

继续阅读

《Java遗传算法编程》笔记

之前读完了《Java遗传算法编程》。感觉上这本书并不是很注重程序的设计及效率问题,但确实将遗传算法讲解清晰了。这里就记录一些不是很熟悉的概念。

一、选择

1.1 竞标赛

从种群中随机选取一定量的个体,选择其中适应度较高的个体。锦标赛作用在于,个体适应度越高,被选中进行杂交的几率越大。

锦标赛规模过大影响效率,且更容易抽中适应度较高的个体,导致多样性下降。而过小的规模会减小选择压力,减慢算法进展。

二、交叉

2.1 均匀交叉

每个基因都均有50%的概率来自双亲的其中一方。

2.2 单点交叉

在基因组中随机选取一个位置,这个位置之前所有基因和之后的所有基因分别来自两个亲代对应位置的基因。

常用[……]

继续阅读

为博客添加了SSL证书

三四年前就听说了可以获得Let’s Encrypt签发的免费的SSL证书。但以前不怎么需要,也就没怎么折腾。不过现在博客开这么久了,也该上HTTPS了。这里就简单记述一下过程。

 

获得SSL证书

到Github上克隆了certbot项目。运行一下tools/venv.py创建一个虚拟的Python环境。(virtualenv)

git clone https://github.com/certbot/certbot.git
python tools/venv.py

运行完后,产生的venv目录就是包含certbot依赖的包的Python环境。运行venv/bin/a[……]

继续阅读

为crayon代码高亮插件添加Kotlin支持

2021-01-31

crayon语法高亮插件实在太久没更新了,升级WordPress后有兼容性问题,已经卸载。因此,文中的一段使用crayon插件样式的代码将不会正常显示。

虽然换了 Enlighter 插件,但目前还没找到令人完全满意的代码高亮插件。

crayon插件(aramk/crayon-syntax-highlighter)算是比较老的一个wordpress插件了。其第一个版本发布于2012年,最后一次release在2016年,直到2018年有人开了个issue告诉作者wordpress把这个插件标记为弃用才改了几行、提交了一次,而且没有发布release。也就是说差不[……]

继续阅读

不安装优酷客户端转化kux格式视频的方法

kux文件格式是优酷的一种视频加密格式。只能使用优酷播放器播放。

实际上我不怎么用优酷看视频,也不喜欢随便安装什么客户端之类的。但有人让我帮忙转kux格式的视频,于是下载了个优酷的安装包。当然,没有安装,而是使用7-Zip把这个安装包解压出来。然后发现了一个文件夹叫nplayer,在这个文件夹里面还有一个ffmpeg.exe。

抱着试一试的心态我把nplayer文件夹单独复制出来,运行了一条简单的命令:

nplayer\ffmpeg.exe -i video.kux video.mp4

然后弹出了提示框:

这个倒好办,从优酷安装包解压出来的文件根目录就有一个。于是[……]

继续阅读

ML-2161打印机硒鼓计数芯片简单破解

关于硒鼓

一般情况下激光打印机碳粉用完后更换硒鼓便可以继续使用。但是硒鼓很贵。而且用完碳粉的硒鼓仅仅是碳粉盒中碳粉比较少,其他组件是完好的。所以,相比更换整个硒鼓这一“奢侈”的做法,直接给碳粉盒加碳粉更加实惠。

但是,如果给用完了的硒鼓直接加碳粉的话,将硒鼓放回打印机后显示的碳粉量并没有变化,因此还是用不了。

这就要提到打印机碳粉量是如何被获取的了。

实际上打印机并不知道碳粉盒里的碳粉具体有多少,但生产商可以估计一盒碳粉可以打印多少次。万恶的生产商会在硒鼓上装一个计数芯片用来记录打印次数(或许还有其他信息),然后当打印次数达到生产商设置的打印次数后,就可以认为碳粉用完,显示[……]

继续阅读

Java方法泛型返回数组的问题

问题

用Java写一个类似Python中random.choice 功能的方法时碰到了一个令我费解的情况。

源代码如下:

RandomUtil.java

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;

public class RandomUtil {

    public static final Random random = new Random();

    public static <T> T[] choice(T[] arr[......]

继续阅读