利用双鱼眼图制作全景图

许多全景相机,如米家全景相机,由2个鱼眼相机组成. 生成的文件为鱼眼镜头图片,如下图 如果需要将双鱼眼图片制作成为全景图很多时候需要安装专业软件,比如PTGui. 偶然在Github上发现了一个相关项目dualfisheye2equirectan »

Author image 月杪 on #Other,

YAML,比JSON更适合作配置文件

很多项目使用JSON作为配置文件,最明显的例子就是npm和yarn使用的package.json文件.当然这更多的是因为JSON和JS千丝万缕的关系. 但是,JSON实际上是一种非常糟糕的配置语言.别误会我的意思,我其实是喜欢JSON的.它是 »

Author image 月杪 on #Linux,

用Nginx和rclone做Google Drive下载页

在写了在Linux上使用rclone挂载Google Drive等服务以后偶然想到能挂载Google Drive等一众网盘以后还能催生出很多玩法,其中一种就是与Nginx等Web server结合起来,做一个方便的下载页面. 准备 要实现下载页主要用 »

Author image 月杪 on #Linux,

用acme.sh签发Let's Encrypt证书

这几天用certbot签发Let’s Encrypt证书的时候发现了各种问题, 有Python版本问题以及pip源问题. 反正就是各种蠢 对我这样一个使用者来说Python制造的问题比它解决的问题还多 于是开始使用国人制作的shell工具 »

Stop DHCP From Changing resolv.conf

For DHCP users, there may be times when you need to edit /etc/resolv.conf to use other nameservers. Then, after a period of time (or after a system reboot), you discover that your changes to /etc/resolv.conf have been reverted. This tutorial shows three methods to stop DHCP from changing the /etc/resolv.conf on Debian or Ubuntu. Method 1: Change interface settings to static On a cloud vps, I do not suggest using this method. If you use this method, you may find that the reboot processing (until you can login through ssh) takes longer. First, we need to get the IP/netmask/gateway of the server. Run the following command. ifconfig | grep "inet addr" | head -n 1 | awk '{print $2, $4}' addr:1. »

Author image 月杪 on #Linux,

在Linux上使用rclone挂载Google Drive等服务

rclone可以帮助我们在Linux上挂载一些储存服务,包括Google drive, onedrive, box, AWS S3等等.同时不会占用硬盘空间 安装依赖 apt-get install fuse 下载 wget https://downloads.rclone.org/v1.41/rclone-v1.41-linux-amd64.zip 截止目前最新版为1.41,在 https://downloads.rclone.org/ 可以看到历史版本. 下载解压后里面的可执行文件rclone就是我们需要的,可以直 »

Author image 月杪 on #VPS,

Github被微软收购

Congratulations to GitHub on their acquisition by Microsoft! This is validation of the growing influence of software developers in the world, and the importance of modern DevOps. The software community owes a lot to GitHub, and that includes the GitLab community. GitLab was first developed on GitHub and found its first contributors through it. 昨天听到微软收购Github的消息,今早Gitlab已经发布了祝贺Github被收购的文章其中附上了布隆伯格发布的相关新闻. 可能产生 »

Author image 月杪 on #Other,

GDPR到底是什么

最近几天至少收到几十个服务的有关隐私协议的邮件(如果你没收到甚至没听说过GDPR,说明你基本不使用这个星球上的主流网络服务)
那么这个GDPR到底是什么呢?

GDPR介绍

GDPR是欧盟于2018年5月25日正式开始实行的**<通用数据保护条例>**

该条例是近三十年来数据保护立法的最大变动,旨在加强对欧盟境内居民的个人数据和隐私保护.此外,它还将通过统一数据和隐私条例来简化对跨国企业的监管框架.它将取代1995年颁布的<数据保护指令>
1995年的<数据保护指令>95/46/EC是欧盟版的隐私保护条例.其主要目标包括协调数据保护立法,以及规范将个人数据转移到欧盟以外的“第三国”的情形.除了其它一系列措施,各个盟国还各自成立独立的公共机构,监督该指令的实施,并作为与企业和公民互动的监管机构.整体而言,该指令符合经济合作与发展协会(OECD)的最初建议以及隐私权是基本人权的核心概念.
虽然<数据保护指令>旨在团结不同盟国的立法,但这只是一项指令,当置换到各国独立的法律时仍有一定的解释空间.加上当今数据格局的快速变化,尤其是Facebook LinkedIn等社交平台以及云技术的兴起,势必要升级欧盟地区的监管环境.即将到来的GDPR是一项更大的立法,并且在各个成员国即刻可执行.

»

Author image 月杪 on #Other,

用Golang重写Github webhook后台服务

起因 前段时间写过一篇利用Github的Webhook功能进行持续集成, 当时使用nodejs来写了webhook的后台服务. 那个程序已经稳定运行了一段时间,期间并没有出现大的问题. 但是毕竟是js的程序,空转状态就需要占用几十Mb的内存,就一个 »

for循环中的++i和i++有什么区别

i++和++i是C系语言的经典课题, 我们知道i++和++i的表面区别为++i的返回值为i+1,而i++则为i,而它们的底层实现分别为: ++i实现: int operator ++ () { return i+1; } i++实现: int operator ++ (int flag) { int j = i; i += 1; return j; } 两者实现的本质区别为其中的j,这个 »

Author image 月杪 on #Code,