把 vim 的缩进设为 4 个字符,并且 tab 自动转空格
修改本用户的 ~/.vimrc 文件,添加以下内容。如果要想 sudo vim 也生效,那 /root/.vimrc 也要改。1234567filetype plugin indent on" show existing tab with 4 spaces widthset tabstop=4" when indenting with '>', use 4 spaces widthset shiftwidth=4" On pressing tab, insert 4 spacesset expandtab上面的注释已经解释了含义。
更多让 Nginx 反向代理的程序获取客户端真实 IP
Nginx 配置添加以下内容:12345location / { proxy_pass http://127.0.0.1:8000; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}其含义就是在反代时,在客户端发起的请求报文上添加 X-Real-IP 和 X-Forwarded-For 两个 HTTP 头。X-Real-IP 表示表观客户端地址,X-Forwarded-For,顾名思义,就是“为谁代理”的意思,这个可以用来嵌套式传输客户端真实地址。被代理的服务,只要能正确解析这两个头,就能获得客..
更多不用 snap,在 Ubuntu 上安装 certbot
Certbot 官网居然只提供 snap 方式安装,而 snap 是我在 Ubuntu 上最不喜欢的东西那就直接用 pip 安装吧~1sudo apt install certbot python3-certbot-nginx
更多在 Ubuntu 中启用 swap
首先,swap 多大比较好?如果你有一个 2G 内存的服务器,偶尔内存有点吃紧,那就再开 2G 的 swap 吧。其他的情况,随缘。如果内存不紧张,就不用开。依次执行:12345678910sudo fallocate -l 2G /swapfile # 在根目录下创建一个 2G 大小的 swap 文件sudo chmod 600 /swapfile # 修改权限配置sudo mkswap /swapfile # 把这个文件作为 swapsudo swapon /swapfile # 启用 swapsudo vim /etc/fstab # 编辑 fstab 以自动挂载 swap 文件# 添加以下内容/swapfile swap swap defaults 0 0sudo swapon --show # ..
更多一日一技:效率翻倍,国产大模型App的正确应用
利益不相关声明,今天介绍的所有工具,都跟我没有任何软文合作,也没有金钱往来。我在这篇文章里面对他们做介绍仅仅是因为他们对我确实非常有用。最近几个月,国产大模型相继推出了自己的 App,这些 App 不仅可进行 AI 对话,还能提供各种智能工具。谈论AI对话功能的文章太多了,我就不赘述了。今天聊聊他们的其他功能。不可否认,国产大模型比国外的大模型差了不少,但我一向秉持重器轻用的观点,我不管这些App提供了多少功能,我只看它里面有没有功能适合我,即便它提供了100个功能,我可能只会使用它其中一个适合我的功能。第一个介绍的工具是豆包中的语音识别功能。虽然字节跳动的大模型做得很一般,在国内都排不上前三名。但我发现豆包的语音识别做的非常好——速度极快,准确率也很高。而且可以让他们的模型对转录出来的文本做一些修饰,移..
更多理解 Java 中的抽象队列同步器(AQS)
最近项目里用到了些 Lock,爬了些文了解到它们是基于 AbstractQueuedSynchronizer(即 AQS)实现的。那么,不如趁热打铁,看看里面是怎么工作的。 什么是 AQSAbstractQueuedSynchronizer,抽象队列同步器,是很多同步器(如 ReentrantLock、CountDownLatch、Semaphore)等都是基于它实现的。 在 AQS 内部,它维护了一个 FIFO 队列,和一个 volatile 类型的变量 state。FIFO 队列用来实现多线程的排队工作,线程加锁失败时,这个线程就会被封装成一个 Node 节点放到队尾,然后当锁被释放后,队列头部的线程就会被唤醒并让它重新尝试获取锁;state 变量用来记录锁的状态,如 Semaphore 的 pe..
更多