使用 iRedmail 架设邮局系统

因为几个因素,放弃了现在购买的邮局系统,自行搭建了 iRedmail,记录下整个过程。 准备 Ubuntu 18.04 iRedmail 会帮你安装很多东西,所以它要求是一个没有安装任何东西的全新系统。 iRedmail 0.9.9 操作 更新系统 sudo apt update sudo apt upgrade -y 设置...

macOS 上必装的应用

因为工作需要,我在 macOS 上安装了很多应用,除了和工作相关的应用之外,我在 macOS 有几款必装的应用,以下工具和工作,娱乐, 学习没有什么关系。 Alfred 这是一款效率工具,其官网说得很清楚 Alfred is an award-winning app for macOS which boosts your efficiency with...

脚手架合集

作为一个开发者,在日常的开发中,难免会需要一些脚手架,索性将一些脚手架整理了下,用一个网站公布出来。 http://tools.tourcoder.com 目前只有一个 IP 归属地查询,后面会陆续更新。...

用 NodeJS 写 CLI

CLI 即 command-line interface 的简写,中文称命令行界面,是指可在用户提示符下键入可执行指令的界面,通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。因为最近工作需要,使用 NodeJS 写了一次 CLI。 commander 这是一个 npmjs.org 上的 module,通过它可以更简便的写 CLI,具体可以看这里。 直接写...

一个简单的短网址系统

厌烦了现在博客的 url 长地址,虽然在 SEO 上是有一定的帮助,但分享起来,还是比较麻烦,索性就给本博客增加了一个外部的短网址系统。当前博客程序用的是 ghost,它本身提供了一套 API,只是因为懒得去读它的文档,索性就是写了个外部的。 基本信息 开发语言: NodeJS (koa2) 运行环境: Debian 8 主要问题 路由问题 根据 koa-router...

开发 macOS 中 Preferences Application

想必有很多和我一样喜欢拿着 mac 在外面写点东西的人都遇到过一个问题,当专心写东西往往没有注意 mac 没电,直到没电关机,要是有一个 app 能想 iPhone 上那样低电量提醒就好了。 所以,我就写了个这样的应用 BatteryBird,不过并不是安装在 Application 这个文件夹下的应用,而是出现在 System Preferences 中的应用,其实它本身就是一个独立的应用。 准备条件 系统环境:macOS...

合理的删除 Apple ID

去年十月份删除了一个不常用的 Apple ID,但今天却给自己带来了麻烦,这个 Apple ID 所使用的 Email 地址将无法再次在 Apple ID 的系统中被使用。在和 Apple 客服近半个小时的电话沟通后,自然确认这个 Email 地址基本无望能够再次被使用了。 疑点 在和客服沟通后,我其实还是有一些疑虑的,但考虑时间问题,就没有继续讨论下去。我的疑点主要体现在两点 在...

给 Microsoft Todo 的一点建议

前几天我在 Twitter 上说留给 Wunderlist 的时间不多了,但即便如此,我还是觉得 Microsoft Todo 还不足以能够替代 Wunderlist。目前,Microsoft Todo 还是很混乱,准确的说。 优点 现在的 Microsoft Todo 在界面上很轻,比起 Wunderlist 看起来很重的界面,Microsoft Todo...

本站搜索的改进

Ghost 自身是没有带站点搜索功能的,考虑到搜索的需要,我通过 page 实现了一个简单的搜索。 创建一个页面,在页面内容中增加搜索功能的 html 代码即可,代码如下 <div class="page"> <div class="searchf"> <...

GitHub 的一个巧妙设计

访问 GitHub,收到了如下的提醒 心想我邮箱早就验证过了,怎么还会要求这个,点进去后发现是这样的 突然意识到,是不是我的邮箱挂了?赶紧查看邮箱,果不其然,邮箱挂掉了。 为什么说 GitHub 设计巧妙呢?猜想是这么一回事,我今天提交了 40 几个 commit,然后又向主库提交了几个 PR,根据我的设置,每次提交后,GitHub 都会向我的邮箱发送一封通知邮件,因为我的邮箱挂了,...

Swift 中 NavigationController 的切换改变

最近在一个用 Swift 写的项目中,用到了 NavigationController 来进行界面的切换,即用到了 pushViewController 和 popViewController,众所周知,pushViewController 是从右向左载入新界面,而 popViewController 是从左向右退回返回到旧界面。那么是否有可能让它们的方向是相反的呢? 答案是可以,这里用到了 CATransition,直接上代码,pushViewController 部分 let newVC = NewVC(...

获取 6 个字符的 Gmail 用户名

Gmail 的用户名最少是 6 位,随着其用户越来越多,能够得到一个较短的用户名也比较麻烦了,恰好在 GitHub 上发现了一个比较好玩的库,用来查找 Gmail 中还剩下的 6 位字符的用户名。 实验环境 CentOS 7 Python 3 Git GitHub 项目地址:https://github.com/xyou365/...

文件的校验

下载的文件很多时候是应该对文件进行校验的,常用的校验有 md5,sha1 等等,校验方式也比较简单,这里单纯用 md5 校验 安装相关的校验命令 通过 homebrew 来安装校验命令工具 brew install md5sha1sum 命令行进行校验 打开命令行工具,执行命令 md5sum 待校验的文件名即可。其实在 macOS 下可以直接用 md5 代校验文件名来直接进行校验。...

找回被回收的 Google Voice 号码

Google Voice 的号码被回收,并且 Google Voice 的账户被停用,即便我和他们一条一条的说明我没有违背 TOS,但均被拒绝恢复 Google Voice 帐号。 在多次被拒绝后,我昨晚本想写最后一封邮件给他们,大概的意思就是我是否可以向他们购买这个号码,或者是否可以将该号码帮我转移到 Google Fi,当写到这里的时候,我突然想到 Google Fi 和 Google Voice...

利用 GitHub 协同工作

GitHub 的强大不用我多说,今天这一篇就好好的写一下如何用 GitHub 进行有效的协同工作,基本是看完这篇文章后,GitHub 协同工作就会了。 主仓库和开发仓库 这里有两个概念 -- 主仓库和开发仓库,很多团队是在同一个仓库进行协同开发,其实这是非常危险的事情,也不方便管理,我们团队使用的是主仓库和开发仓库的开发模式。 主仓库 主仓库只作为协同工作时的协调库,以及持续部署的基础源。任何协同开发人员不可在主仓库创建分支,不得向主仓库 push 内容,所有内容必须经过 PR(Pull...

在 Swift 项目中使用 Objc 的第三方库

最近在用 Swift 写项目,发现其中用到的一些第三方库还是用 Objc 来写的,还好 Swift 中提供了很方便的引用 Objc 第三方库的办法。 安装第三方库 通过 cocoapods 直接安装,这个不用多说,可以看这篇文章 创建连接文件并让它生效 Apple 官方推荐通过 header file 进行桥连接,操作如下 新建一个头文件 Bridging-Header....

G Suite 的设置贴士

Thomas Kurian 不愧是从 Oracle 过来的,没多久就给 Google Cloud 来了一波骚操作,作为一个资深用户,我对他的这波操作还是有异议的,比如 G Suite 取消了年度支付的折扣。 废话少说,本博文的重点是 G Suite 的一些设置贴士 在注册的过程中,发现无法进入该怎么办? 这里的无法进入有多个原因,其中有个很直接的解决办法,直接访问 https:...

Office 365 中开启 dkim

邮局系统开启 DKIM 是一件必做的事情,在 Office 365 中开启 dkim 的过程如下 首先在 office 365 管理员平台查看是否已经开启了 dkim 如图所示,进入到管理员后台,选择 exchange 然后选择界面中的 dkim 菜单 选择域名,这里 tourcoder.com 是已经开启了...

在 NPMJS 上发布并维护包

做 nodejs 的开发基本都会用到 npm 都包,那么如何在 npmjs 上发布并维护一个包呢? 准备条件 一个 NPMJS 的账户 步骤 编写包 一个包应该至少包含三个文件,package.json,readme.md 和代码文件。虽然 readme.md 文件是非必需的,但一个清晰的文档文件能节省使用者很多事情,建议每一个发包者都应该写好...