Becomin' Charles

算法 | LNMP | Flutter | Mac

Becomin' Charles

在高度系统化驱动的业务中,查看业务报表已经是一个很常见的需求了。在分工非常明确的大型企业里,往往有专门的数据分析团队或者数据开发团队,他们能够胜任此类需求(但也未必是轻松的,或者说高效的)。

但是,在都是业务开发的中小团队中,业务报表需求,往往就是业务系统的程序员自己进行开发。我不知道这种情况有多普遍,至少在我自己的团队是这样的。业务系统的设计往往是为了实现更强一致性,更高效率,而设计数据库的数据结构,在这基础上进行报表开发,往往会写出非常复杂的 SQL。

而不同角色的管理者要求的不同分析视角,使得报表的复用性无法达到理想的程度。开发繁复的报表统计需求,成为了程序员一个无法避免的负担。而在一个“管理信息”集中的系统里,这种矛盾变得尤为凸显。不光是实现这样的需求变得困难和不堪重负,仅仅是保持实现的正确性和高效性,都变得极为困难。

引入大宽表,可以有效降低开发的难度,以及提升代码的复用性。

阅读全文 »

因为工作的关系,必须学习使用 Metabase,所以,开辟此文,记录一些我的学习笔记。

阅读全文 »

最近在学习 Vue 开发,实现一个动态站点,很重要的一个功能就是实现用户的登录。在我以前熟知的前后端混合的项目中,实现用户登录是一个很平凡的事情,以至于我甚至一下子都想不起来它实现的方法和原理。

在前后端分离的网站里,到底怎么去实现用户的登录,验证等等功能呢?

阅读全文 »

最近,我在学习 Vue 3,一直以来想学习的,不过都没什么动力去学习。这次正好有个小项目,我可以借机学习一下。我这才发现,真是举步维艰,我对前端开发的知识,停留在 jQuery + Bootstrap 时代,这么多年就没有进步过。现在一上手,才深刻体会到自己的落伍。

我要想成功把项目给开发出来,必须从最基础的知识开始补课,才能完成目标。模块,就是我第一个要学会的知识。

阅读全文 »

hexo_github_actions

缘起

5 月 13 日晚间,一位 IT 互联网行业的前辈——陈皓(网名:左耳朵耗子)去逝。2004 年,从 Live Space 自定义脚本开始,我玩起了个人博客空间,到 2008 年正式建立自己的独立博客,很快就注意到了 CoolShell.cn 的个人博客,正是左耳朵耗子的博客。

他的博客内容原创性好,完整性强,有独到见解,是整个中文博客圈,数一数二的高质量博客。从他的博客我学习了很多的技术知识,也了解了他的个人风格和思想。

这些年,我也在认真经营自己的独立博客。当我知道左耳朵耗子逝世的消息后,我第一时间就打开了他的博客,这是一个下意识的行为,因为我认识他在此,验证消息也是在此,缅怀同样在此。我发现,他的博客打不开了(后来恢复了)。可以看到,他的博客托管在 CloudFlare 平台上,出现了欠费的提示页面。

这一瞬间,我就涌起一种凄凉和恐慌的感觉,因为左耳朵耗子逝世的消息,离事情发生才一两天,他的博客竟然就因为欠费出现了停服的情况。他作为一名行业前辈,写下的文字,怎么说也对广大读者有着重要的意义,但是在这个”互联网有记忆“的时代,竟然因为欠费瞬间就被抹去。

这使我不得不反思,撰写独立博客的意义;以及,我是否希望我的博客在我去世后,还能长期存续的问题。至此,静态网站生成器,才重新纳入我的视野。

阅读全文 »

很多年前开始,我在 Mac 上调试 Web 应用,就是使用一个 App,叫 MAMP Pro,这是一个德国软件,相当于 Windows 上的 xampp,是 Apache + PHP + MySQL 套装。用起来很方便,主要在一台机器上,可以启动很多个 Web 应用,比较节省资源,当然,这不是什么优点,真正的优点是开箱即用,非常方便。

不过现在,我公司深度采用云计算和 Docker,k8s 等基础设施,在本地使用 AMP 套件,其整体部署和服务器环境相差就比较远了。而且最近开发 Flutter 远多于 PHP,还有一个因素是我刚换了 m1 的 Mac,而 MAMP 还是 x86 架构的,干脆还是尽量用 Docker 吧。

阅读全文 »

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

阅读全文 »

没想到,到了 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。这些验证器和一次性密码,成为两步验证一种比较流行的方式。我个人也很喜欢,至少我觉得比短信验证码体验要好一些。

阅读全文 »