0%

bash 语法作为程序员好像都了解一些,但又缺少体系化学习,需要使用到某些功能时又经常手忙脚乱地查。
本文目的是作为bash的语法备忘录、语法速查表。

阅读全文 »

最近的一些文章是整理以前的笔记
MySQL 是最常用的数据,有时希望将数据库文件存放在自定义路径,或者在系统中启动多个 MySQL服务。

阅读全文 »

在使用 Hexo 的站内搜索时,发现搜索的内容不全。单步调试发现xml解析不完整,有部分内容被截断了。

在浏览器中打开/search.xml发现以下错误。显然xml中有非法字符,xml解析产生了错误。

阅读全文 »

对程序员来说,macOS 就是一个桌面支持比较好的 Linux/Unix,给日常开发带来了许多便利

本文记录一些日常使用中的小技巧。

阅读全文 »

使用MySQL数据库时,当表的数据条数比较大时(1000w以上),数据查询会很慢,索引的效果也不好。

这时我们可以把表的数据分区存储,安装数据值的前缀或者时间字段来分区。

阅读全文 »

要在不暴露 client 的情况下共享网络,一般就只能使用 nat(Network Address Translation), linux 下可以使用 iptables 很轻松地搞定。
nat 包含 DNAT 和 SNAT, 要想双向互通,必须两者都实现。

windows下的网络共享只有SNAT那一部分,比如各自免费wifi软件。少了DNAT,外部网络就无法访问内部。

还好windows下可以配置端口转发,实现等效的DNAT

阅读全文 »

最近在搞 torch 的工程化,基于 brpc 和 libtorch,将两者编译在一起的过程也是坑深,容下次再表。

为了简化部署,brpc 服务在 Docker 容器中运行。本地测试时功能一切正常,上到预发布环境时请求全部超时。

由于业务代码,brpc,docker环境,机房都是新的,在排查问题的过程中简直一头雾水。(当然根本原因还是水平不足)

阅读全文 »

Tmux 是一个终端复用器(terminal multiplexer),非常有用,属于常用的开发工具。

Tmux 可以维持和管理我们的远程终端会话,和服务断线重连后也不会丢失工作状态, 同时可以在一个终端连接中开启多个窗口(window)和窗格(pane)。

一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。

阅读全文 »

Redis作为内存型数据,为了高可用,必须有数据备份,这里采取主从的模式。
用户可以通过执行 SLAVEOF 命令或者设置 slaveof 选项,让一个服务器去复制 (replicate) 另一个服务器。

阅读全文 »

Redis是内存型数据库,所有数据都存储在内存中。而内存是易失型存储,一旦进程退出所有数据都会丢失。

所谓持久化,就是将Redis在内存中的数据库状态以某次格式保存到磁盘里面,避免数据意外丢失。

Redis有两种持久化方式:RDB (Redis Database)、AOF (Append Only File)

阅读全文 »

数独是一种数学逻辑游戏,游戏由9×9个格子组成,玩家需要根据格子提供的数字推理出其他格子的数字。游戏设计者会提供最少17个数字使得解答谜题只有一个答案。

数独的解法需 遵循如下规则:

  1. 数字 1-9 在每一行只能出现一次。
  2. 数字 1-9 在每一列只能出现一次。
  3. 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。
    阅读全文 »

Least Frequently Used (LFU) 是一种常见的缓存淘汰算法,译为“最近最不经常使用”,也就是将缓存中使用次数最少的数据淘汰掉。

有两种常见的实现方法

  • 小顶堆 + hashmap,插入和删除的复杂度为O(logN), 但淘汰相同访问次数的节点是不稳定的,因为堆排序不稳定。
  • 数组存储数据项 + hashmap记录数据项index, 淘汰缓存的复杂度为O(N)
阅读全文 »

英彦有云,魔鬼在细节之中(The devil is in the details),其意义在于提醒人们,不要忽视细节,即使是微不足道的小处也可以影响大局。

换个角度思考,这句话用在学习上,是再贴切不过了。当我们接触一个新领域时,其中的每个知识细节,都是魔鬼,稍有不慎就会被魔鬼击败,产生厌学情绪,再起不能。只有除尽这些魔鬼,才能攀上知识的高峰。

阅读全文 »

说到缓存,就必须先了解下计算机的存储器层次结构

存储器层次结构的主要思想是上一层的存储器作为低一层存储器的高速缓存。

计算机系统中的存储设备都被组织成了一个存储器层次结构,从上至下,设备的访问速度越来越慢、容量越来越大,并且越便宜。

阅读全文 »