4月1日
基础架构

大体来说是可以分为server层和存储引擎层两个部分。
Server 层包括连接器、分析器、查询缓存、优化器、执行器等,涵盖了MySQL 大多数核心服务,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器和视图等。
more >>4月1日

大体来说是可以分为server层和存储引擎层两个部分。
Server 层包括连接器、分析器、查询缓存、优化器、执行器等,涵盖了MySQL 大多数核心服务,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器和视图等。
more >>python允许通过为函数提供默认值来指定函数参数的,但是当默认值是可变的时,就会产生一些问题:
1 | def foo(bar=[]): |
上面的代码中,期望的是 foo() 重复调用(即不指定bar参数)将始终返回 'baz' ,因此假设每次 foo() 调用 bar 被设置为 []。
但是,让我们来看看执行次操作时实际发生的情况:
1 | >>> foo() |
咦,为什么每次调用都会默认值附加 'baz' 到现有的列表中,而不是每次都创建一个新列表?
答案就是: 函数参数的默认值仅在定义函数时计算一次。因此 bar 仅在 foo() 首次定义时将参数初始化为其默认值,但随后调用 foo() (即未指定bar参数),将继续使用 bar 最初初始化的相同列表。
仅供参考,一个常见的解决方法如下:
1 | def foo(bar=None): |
安装一些必要的依赖环境
1 | apt install -y libcurl4-openssl-dev libevent-dev \ |
下载最新的aria2的源码:
1 | wget --no-check-certificate https://github.com/aria2/aria2/releases/download/release-1.31.0/aria2-1.31.0.tar.gz |
Aria2的参数中-max-server-connection和-min-split-files很大程度上决定了网盘的下载速度。
在这里我将-max-server-connection最高设置为256,-min-split-files最小设置为256k。
sudo vi /etc/sudoers
将
1 | %sudo ALL=(ALL:ALL) ALL |
改为
1 | %sudo ALL=(ALL:ALL) NOPASSWD: ALL |
保存后退出 :wq!
之后输入 sudo 就可以不用输入密码。
至于安全问题,对于一般个人用户,我觉得这样也可以的。
如果改崩了,可以使用 pkexec visudo 输入密码后修改对应出错的地方,保存文件即可解决此问题
1 | sudo vi /etc/sudoers |
将
1 | %admin ALL=(ALL) ALL |
改为
1 | %admin ALL=(ALL) NOPASSWD: ALL |
保存后退出 :wq!
在 $HOME/.local/share/applications 目录下,新建文件: youapp_name.desktop,然后在其中填入以下内容:
1 | [Desktop Entry] |
其中 Exec 对应的是启动命令,如果是自己写的脚本,那就在以 Exec=sh 开头。Icon 对应的是图标
长按图标,然后选择添加到收藏夹即可
对于热门文章的定义是:
单位时间内,(”分享“数 + ”点赞“数 + ”评论“数)的总和大于某特定值的文章,被视为热门文章。
热门文章的列表是由后台动态生成的,而且在每次生成的时候,产生的数据不一定是相同的。为了减轻系统的压力和提高api的响应速度,该计算任务使用celery 进行后台任务调度。
后台定时任务是循环任务,任务执行时向缓存数据库中插入当前时段计算出的热门文章索引值,缓存数据库采用的是redis。
客户端有一个社区列表的展示界面,该列表的排序方式是按照关注人数进行反向排序(从大到小),类似:
| 社区id | 社区名称 | 社区关注人数 |
|---|---|---|
| 1 | AAA | 4 |
| 3 | CCC | 3 |
| 2 | BBB | 2 |
| 4 | DDD | 1 |
但是社区的 关注人数是动态变化的 ,当社区数量较多时也要考虑分页的情况,那么该列表的排序和分页有了很大的难度。
more >>这里简单整理当前的实现思路,并指出明显的缺陷和暂时解决不了的问题,待以后有能力解决。
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent:
meta: false
pages: false
posts:
title: true
date: true
path: true
text: false
raw: false
content: false
slug: false
updated: false
comments: false
link: false
permalink: false
excerpt: false
categories: false
tags: true