Becomin' Charles

算法 | LNMP | Flutter | Mac

Becomin' Charles

“二分查找”可能是基础算法里最为“易学难精”的一个分支。“易学”在于,其算法思想极其简单而且显然,以至于每个人在看过原理分析后,立刻就能完整复述,说得头头是道。“难精”在于,这些头头是道的同学,很难顺利地一秒写对,把题做出来。此外,有些场景能够使用“二分查找”,但是都隐藏很深,极难看出来,无法想到去应用。只有当你看到题解后,才恍然大悟,悔恨不已。

阅读全文 »

没想到,到了 2023 年的今天,想要找一个能长久免费托管自己个人博客的平台,仍然是一件难事。就在前不久,行业的一位前辈左耳朵耗子逝去,我去他的博客缅怀,发现他的博客托管在 Cloudflare 云计算平台,平台提示,他的博客因为没有续费已经下线。

我不免想到,如果有一天是我,那么我的博客,承载了我在这个世界上公开留下的文字,还能在互联网上存在多久呢?此前我的博客托管在腾讯云服务器上,还比较稳定,较少出现故障等,但是服务器需要人续费维护。后来搬迁到阿里云服务器,比较垃圾,经常会出现故障,还不能自动恢复。而且流量耗光,或者服务器租期到了,我留下的这些内容都会直接下线消失,不复存在。

我想,我需要找一个尽可能长时间免费托管,稳健运行的平台,来备份我的所有博客内容。这样,即使我在相当长一段时间不去维护,不续费,我留下的内容继续存在。所以,我主要的需求,就是一个尽可能免费,稳定运行的平台,托管了博客内容,如果不去维护,也不会出问题。此外,还要满足,撰写方便,发布方便,对开发环境依赖低等等特点。

阅读全文 »

SSL 已经成为互联网最重要的基础设施,尤其是最近几年,基本上所有网站都已经部署了 HTTPS。曾几何时,SSL 证书对普通个人网站来说,还是很难取得的,主要是要收费。但是,从 Let’s Encrypt 提供服务开始,几乎整个互联网都用上了免费的 SSL 证书。

使用 HTTPS 可以保证你的网站上提供的服务和用户浏览器之间的链接加密,其内容不必篡改和窃听。SSL 证书有很多等级,一般免费的证书都是域名级别的,即证明网站服务提供商,拥有目标域名的管理权限。当然还有更高级别的。

不过,一般的 HTTPS,只是帮助访问网站的用户认证自己访问的域名没有被篡改。但是在安全等级更高的地方,被访问的服务,也需要证明访问者的身份可靠。当然,一般的网站也都有这个要求,比如要求用户进行登录,提供用户名和密码作为一种验证手段。

阅读全文 »

我刚入职的时候,公司使用 RSA 公司的 token,所谓的 token 就是一个像优盘一样的硬件,每隔 30 秒会产生一个 6 位数字,这个数字作为一次性密码,也即标题里提到的 OTP,one-time-password 的缩写。

后来手机普及后,出现了很多软件实现的 OTP,比如 QQ 安全中心,微软的 Authenticator,以及 Google Authenticator。这些验证器和一次性密码,成为两步验证一种比较流行的方式。我个人也很喜欢,至少我觉得比短信验证码体验要好一些。

阅读全文 »

常在河边走,哪能不湿鞋。没想到,从 2008 年开始深入玩 WordPress 博客到现在,竟然第一遇到了数据库损坏,真是闻所未闻,见所未见啊……一个个人博客而已,毫无访问和压力,竟然也可以搞成这样。

阅读全文 »

作为程序员工作十几年了,Shell 编程这项技能,就好像“你永远得不到的爸爸”一样,每次想用的时候,都觉得自己从来没学会过。本文的编写作为一篇学习笔记,或者一个备忘录,或者一个作弊小抄,我会在每次遇到的时候,不断前来添砖加瓦,说不定有朝一日,能有望凑成一本秘籍。虽然网上类似的内容很多了,但是那些终究是别人的东西,自己用着总是不得劲,所以,做笔记这项技能总是伴随着人类的发展。

阅读全文 »

大家有没有发现,有些技术点,我们每次想用的时候,都不会用,然后学会了,用一次,又很久不用,然后到了要用的时候,又开始新一轮的循环。比如 git 的 submodule,对我来说就是这样一个技术点。

阅读全文 »

popclip

PopClip 是我非常喜欢也非常依赖的一个软件,属于 “润物细无声” 这个类目的软件。

软件的功能是,当你用鼠标选中一个文本的时候,弹出来一个浮动菜单,提供一系列的快捷小功能。缺省的功能有,搜索引擎,相当于划词搜索,还有字典查询,可以立刻激活系统的字典,还有拼写检查等。

阅读全文 »

docker

Docker 一旦设置好了环境,日常就只要使用简单命令就可以运行和停止。

于是,我每次用的时候,都想不起来一些关键性的命令到底怎么用,特此记录。

阅读全文 »

指令式编程,Imperative Programming,是一种编程泛型,通过编程指令,告诉计算机,每个步骤执行的命令,计算机按照代码的指令,逐行执行,就能得到最终结果。

指令式编程的优点是非常符合直觉,代码发出命令,计算机执行。所以,这种编程泛型也非常容易学习,我们入门学习的 C 语言,Java 语言等等,都是支持指令式编程的,也是这类语言的主要编程泛型。

面向对象编程,也是一种编程泛型,同时,面向对象编程泛型,也是一种指令式编程泛型的特例。所以,指令式编程,是一个更抽象的概念。

声明式编程,Declarative Programming,顾名思义,这种编程泛型,更倾向于告诉计算机,“是什么”,由计算机自行决定如何操作。

阅读全文 »