时间规划局

剧情 这是一个奇妙的世界,人类的样貌被锁定到了25岁,到了25岁以后人类将不会变老。不过这时候人们将只剩下一年的寿命了,想要活下去,就只有通过工作区赚时间。这个世界的通用货币就是时间。 男主生活在一个时间贫瘠的区域,这里的人们每天都在为时间而发愁。每天的物价都在上涨,物价上涨的速度超……

阅读全文

聊聊最近开发近况

课程相关 最近很浮躁,课程上的有点也跟不上,然后都得后补加多次重看才可以。 心态不好还得继续调整,让自己慢下来以后进度逐渐变好了。 博客相关 之前迁移到香港服务器之后,图片原本整的是本地存储。后来拉数据就给 jenkins 干崩了。今天优化了一波超时时间,以及拉取 git 的层级。 然后把图片上传到 github,……

阅读全文

从零开始学习实践微服务 - 数据库读写分离篇

前言 这是一个长期的计划,从零开始学习并实践微服务。为什么要实践这个?因为火?并不是,实际上是在开发的这么多年里面,除了最初始是用lnmp自己维护过一些数据库之类的,其实就是安装了一下,配置都没有修改过什么。到了北京以后,一直都是在用云服务提供的组件。所以,这么多年的开发实际上自己……

阅读全文

利用Jenkins+Github自动部署hugo博客

复工了,刚上班身体在休息了40天以后还有点受不了。人就更加懒了。貌似今年总结的东西会比去年更好一些,不是思想的东西就是工作中准备用的。挺好,感觉比去年写的更有目的。这次要写的东西是准备在公司部署的,利用 Jenkins 编译公司的一些东西。利用周末的时间抓紧自己研究一下,但是从今天的总结来看,应……

阅读全文

争取能让大家都能看懂的 DFA 算法

为什么要学习这个算法 我们公司一直都有的一个敏感词检测服务,前一段时间遇到了瓶颈,因为词库太多了导致会有一些速度过慢,而且一个正则表达式已经放不下了,需要进行拆分正则才可以。 正好我以前看过有关 dfa 的介绍,但是并没有深入的进行研究,所以就趁着周末好好的了解一下这个东西。跟 php 的正则进行一……

阅读全文

浅谈AOP、IOC

为什么要说这个东西呢,是因为前几天我媳妇在面试一个小姐姐的时候那个小姐姐的简历提到了了解 IOC、AOP。我忽然就笑了起来,13年来北京实习的时候面试准备的就是IOC、AOP。当时还记得面试辅导老师给我们讲,背下来背下来,几乎都会问道,但是具体让我们背下来多少概念,到现在我也记不清……

阅读全文

从构建镜像到发布到docker Hub

前言 以前自己弄过 docker 镜像,不过一直都是自己在用。最近公司有了一些新的需求,正好自己可以完整的跑一边从构建镜像到发布。然后在阿里云那边弄 k8s 和任务啥的。阿里云那边下篇再说,我们这边就先弄镜像相关。 编写 DockerFile 这次我们需要弄一个 ffmpeg 的镜像。因为需求就是 ffmpeg 所以就直接用这个了,根镜像我们选用 alpine 因为这……

阅读全文

新年唠嗑

又是新的一年,总得说点什么,博客的文章没啥浏览量所以几乎都是写给自己看的,印象笔记里面积攒的更多,没有发出来的原因,是因为大部分都是碎片,没啥好发出来的。 去年一年的个人进度还是不错的,虽然就写了个小的视频网站吧,但是学到了很多东西。对于工作也有很大的帮助,貌似这句话这两年都说过,……

阅读全文

Typecho 源码分析(10)-- DoAction 分析

前情提要 前面我们分析了插件列表,看到 html 部分,我们看到了请求的url 包含 action 我们这篇就分析这里。 正文开始 在做到插件启用相关部分的时候。发现了一个链接, 1 http://typecho.test/index.php/action/plugins-edit?activate=HelloWorld&_=a05deb76f571cfb798d3904cc6cecf77 这块我就比较好奇了,为什么跟首页部分的不太一样吗,难道是又包装了一层?我们从路由分发来看一下。 1 2 array(6) { ["url"]=> string(22) "/action/[action:alpha]" ["widget"]=> string(9) "Widget_Do" ["action"]=> string(6) "action" ["regx"]=> string(32) "|^/action/([_0-9a-zA-Z-]+)[/]?$|" ["format"]=> string(10)……

阅读全文

Typecho 源码分析(9)-- 部分Security&User 组件分析

前情提要 前面我们分析了插件列表,但是 html 部分我们没有分析,今天我们就来分析一下 url 生成部分。 正文开始 后台的 common.php 会加载 Security 组件。 先看 Security 的 execute 方法, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 /** * 初始化函数 * */ public function execute() { $this->_options = $this->widget('Widget_Options'); $user = $this->widget('Widget_User'); $this->_token = $this->_options->secret; if ($user->hasLogin()) { $this->_token .= '&' . $user->authCode . '&' . $user->uid; } } 首先会加载 Options ,然后会加载 User 组件。 我们再去看 User 组……

阅读全文