读书笔记 - Packet Guide to VoIP

书名 Packet Guide to Voip over IP 作者 Bruce Hartpence 状态 已读完 简介 Go under the hood of an operating Voice over IP network, and build your knowledge of protocol …. 读后感 新技术出现的时机 Pulling the trigger early might put you at risk of making the wrong decision in terms of vendor or protocol. Adopting late might put you behind the competition or make you rush to deploy a system that is not well understood by the local staff....

2022-07-18 20:05:01 · 1 min · Eddie Wang

中途多语言适配

1. 前提说明 项目已经处于维护期 项目一开始并没有考虑多语言,所以很多地方都是写死的中文 现在要给这个项目添加多语言适配 2. 工具选择 https://www.npmjs.com/package/i18n https://www.npmjs.com/package/vue-i18n 3. 难点 项目很大,中文可能存在于各种文件中,例如html, vue, js, typescript等等, 人工查找不现实 所以首先第一步是要找出所有的中文语句 4. 让文本飞 安装ripgrep apt-get instal ripgrep 搜索所有包含中文的代码: rg -e '[\p{Han}]' > han.all.md 给所有包含中文的代码,按照文件名,和出现的次数排序: cat han.all.md | awk -F: '{print $1}' | uniq -c | sort -nr > stat.han.md 这一步主要是看看哪些文件包含的中文比较多 按照中文的语句,排序并统计出现的次数: cat han.all.md |rg -o -e '([\p{Han}]+)' | sort | uniq -c | sort -nr > word.han.md 经过上面4步,基本上可以定位出哪些代码中包含中文,中文的语句有哪些。

2022-07-12 22:54:55 · 1 min · Eddie Wang

0 A.D. 一款开发了21年还未release的游戏

1. 我为什么会知道0 A.D. 这款游戏? 最近切换到windows开发,用了scoop这个包管理工具来安装软件,随便逛逛的时候,发现scoop还可以用来安装游戏,然后我就在里面看了一下,然后排名第一的是一个名叫 0 A.D.的游戏,然后我就安装,并试玩了一下。 2. 0 A.D. 这个名字是啥意思? 基督教称耶稣诞生的那年为公元元年, A.D. 就是Anno Domini(A.D.)(拉丁)的缩写,对应的公元前就是而在耶稣诞生之前,称为B.C. Before Christ(B.C.). 我们现在的阳历,例如今年是2022年,这其实就是公元2022年。对应的公元元年,对中国来说,大致在西汉年间。 所以 0 A.D. 其实的意思就是一个不存在的元年。 “0 A.D.” is a time period that never actually existed: 3. 0 A.D. 是什么类型的游戏? 如果你玩过红警,0 A.D.的有点像红警。 官方的介绍0AD是一个基于历史的实时策略游戏。 如果你玩过部落冲突,0AD其实也有点类似部落冲突。 4. 0 A.D. 有什么特点? 跨平台, windows, mac, linux都可以玩 免费 历史悠久,项目开始于2001 还处于开发阶段 可玩性还不错 基于真实历史,所以玩游戏的时候,也是能够学点历史的。里面有是14个文明。 5. 有哪些玩法 单机和AI对战 在线组队玩 6. FAQ 如何设置中文界面 默认的游戏不带中文语言的,实际上它是有中文的语言包的,可以参考 参考 https://baike.baidu.com/item/%E5%85%AC%E5%85%83/17855

2022-07-12 19:32:28 · 1 min · Eddie Wang

请问nginx 能否根据 frag 片段 进行路径转发?

HTTP URL的格式复习 ://:@:/;?#frag scheme 协议, 常见的有http, https, file, ftp等 : 用户名和密码 host 主机或者IP port 端口号 path 路径 params 参数 用的比较少 query 查询参数 frag 片段,资源的一部分,浏览器不会把这部分发给服务端 关于frag片段 浏览器加载一个网页,网页可能有很多章节的内容,frag片段可以告诉浏览器,应该将某个特定的点显示在浏览器中。 例如 https://github.com/wangduanduan/jsplumb-chinese-tutorial/blob/master/api/anchors.js#L18 这里的#L8就是一个frag片段, 当浏览器打开这个页面的时,就会跳到对应的行 在网络面板,也可以看到,实际上浏览器发出的请求,也没有带有frag参数 Vue 在Vue中,默认的路由就是这种frag片段。 这种路由只对浏览器有效,并不会发送到服务端。 所以在一个单页应用中,服务端是无法根据URL知道用户访问的是什么页面的。 所以实际上nginx无法根据frag片段进行拦截。 nginx路径拦截 location [modifier] [URI] { ... ... } modifier = 完全匹配 ^~ 正则匹配,并且必须是以特定的URL开头 ~ 正则匹配,且大小写敏感 ~* 正则匹配,大小写不敏感 nginx路径匹配规则 首先使完全匹配,一旦匹配,则匹配结束,进行后续数据处理 完全匹配无法找到,则进行最长URL匹配,类似 ^~ 最长匹配找不到,则按照 ~或者~*的方式匹配 最后按照 / 的默认匹配

2022-07-09 17:13:13 · 1 min · Eddie Wang

windows 上的命令行体验

我已经有5年没有用过windows了,再次在windows上搞开发,发现了windows对于开发者来说,友好了不少。 首先是windows terminal, 这个终端做的还不错。 其次是一些常用的命令,比如说ssh, scp等,都已经默认附带了,不用再安装。 还有包管理工具scoop, 命令行提示工具 oh-my-posh, 以及powershell 7 加载一起,基本可以迁移80%左右的linux上的开发环境。 特别要说明一下scoop, 这个包管理工具,我安装了在linux上常用的一些软件。 包括有以下的软件,而且软件的版本都还蛮新的。 0ad 0.0.25b games 7zip 22.00 main curl 7.84.0_4 main curlie 1.6.9 main diff-so-fancy 1.4.3 main duf 0.8.1 main everything gawk 5.1.1 main git 2.37.0.windows.1 main git-aliases 0.3.5 extras git-chglog 0.15.1 main gzip 1.3.12 main hostctl 1.1.2 main hugo 0.101.0 main jq 1.6 main klogg 22.06.0.1289 extras make 4.3 main neofetch 7.1.0 main neovim 0.7.2 main netcat 1....

2022-07-09 12:43:14 · 1 min · Eddie Wang

powershell oh-my-posh 加载数据太慢

每次打开新的标签页,Powershell 都会输出下面的代码 Loading personal and system profiles took 3566ms. 时间不固定,有时1s到10s都可能有,时间不固定。 这个加载速度是非常慢的。 然后我打开一个非oh-my-posh的窗口,输入 oh-my-posh debug 看到其中几行日志: 2022/07/09 12:20:23 error: HTTPRequest Get "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/v8.15.0/themes/default.omp.json": context deadline exceeded 2022/07/09 12:20:23 HTTPRequest duration: 5.0072715s, args: https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/v8.15.0/themes/default.omp.json 2022/07/09 12:20:23 downloadConfig duration: 5.0072715s, args: https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/v8.15.0/themes/default.omp.json 2022/07/09 12:20:23 resolveConfigPath duration: 5.0072715s, args: 2022/07/09 12:20:23 Init duration: 5.0072715s, args: 好家伙,原来每次启动,oh-my-posh还去github上下载了一个文件。 因为下载文件而拖慢了整个启动过程。 然后在github issue上倒找:https://github.com/JanDeDobbeleer/oh-my-posh/issues/2251 oh-my-posh init pwsh –config ~/default.omp.json 其中关键一点是启动oh-my-posh的时候,如果不用–config配置默认的文件,oh-my-posh就回去下载默认的配置文件。 所以问题就好解决了。 首先下载https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/v8.15.0/themes/default.omp.json 这个文件,然后再保存到用户的家目录里面。 然后打开terminal, 输入: code $profile 前提是你的电脑上要装过vscode, 然后给默认的profile加上–config参数,试了一下,问题解决。 oh-my-posh init pwsh --config ~/default....

2022-07-09 12:31:09 · 1 min · Eddie Wang

windows11 安装 oh my posh

0. 前提条件 系统是windows11 已经安装过powershell 7 安装过vscode编辑器 默认情况下,所有命令均在powershell下执行的 1. 安装 oh my posh 1.2 方式1: 通过代理安装 假如你有socks代理,那么可以用winget安装 打开你的power shell 执行类似下面的命令,来配置代理 $env:all_proxy="socks5://127.0.0.1:1081" 如果没有socks代理,最好不要用winget安装,因为速度太慢。然后执行: winget install JanDeDobbeleer.OhMyPosh -s winget 1.2 方式2: 下载exe,手工安装 再oh-my-posh的release界面 https://github.com/JanDeDobbeleer/oh-my-posh/releases 可以看到很多版本的文件,windows选择install-amd64.exe, 下载完了之后手工点击执行来安装。 https://github.com/JanDeDobbeleer/oh-my-posh/releases/download/v8.13.1/install-amd64.exe 2. 配置 oh-my-posh 在powershell中执行下面的命令,vscode回打开对应的文件。 code $PROFILE 在文件中粘贴如下的内容: oh-my-posh init pwsh | Invoke-Expression 保存文件,然后再次打开windows termial, 输入下面的命令来reload profile . $PROFILE 然后你可以看到终端出现了提示符,有可能有点卡,第一次是有点慢的。但是很多符号可能是乱码,因为是没有配置相关的字体。 3. 字体配置 3.1 安装字体 下载文件 https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/Meslo.zip 解压文件 打开设置,在个性化》字体中,将之前下载好的所有字体,拖动到下面的红框中,字体就会自动安装 3.2 windows termial字体配置 用vscode打开对windows termial的配置json文件,在profiles.default.font中配置如下字体 "font": { "face": "MesloLGM NF" } 配置之后,需要重启windows termial...

2022-07-08 13:30:15 · 1 min · Eddie Wang

关于我在闲鱼卖二手这件事

自从我换了新款的惠普战X之后,我的老搭档,2017款的macbook pro, 已经在沙发上躺了很久了。 我拍了拍它的脑袋,对它语重心长的说: 人不能闲着,闲着容易生病,笔记本也是如此。虽然你已经是5年前的mbp了, 但是廉颇老矣,尚能饭否? mbp面无表情,胡子邋遢,朝我瞥了一眼,像是嘲讽,又像是不满,一口气吸掉还剩一点的香烟,有气无力的说:我已经工作五年了,按照国家的法律规定,已经到了退休的年龄,是该享受享受了。 我

2022-07-07 21:34:28 · 1 min · Eddie Wang

最后一篇blog, 是时候说再见了

我最早用过有道,我觉得有道很烂。 后来我开始用印象笔记,我发现印象笔记更烂。不仅界面做的让人觉得侮辱眼睛,即使你开了会员也要看广告。 印象笔记会员被割了韭菜,充到了2026年,但是我最近一两年我基本没有用过印象笔记。 后来我遇到了文档blog界的new school, notion、语雀、飞书, 就完全抛弃了有道和印象笔记的old school。 做任何事情,都需要动机。 写公开博客也是如此。可能有以下原因 提升个人影响力 提高自己的表达能力 知识积累和分享 公开博客需要三方角力,平台方、内容生产者、内容消费者(读者)。 作为内容生产者,我们从选择一个平台是需要很多理由的。可能是UI界面的颜值,可能是一见钟情界面交互。 就像男女的相亲,首先要被外貌吸引,才能有下文。 然而除了那一见钟情的必然是短暂的,除此之外,我发现了另一个重要原因:迁移成本 我以前决定不用印象的时候,印象笔记上还有我将近一千多篇的笔记。虽说印象笔记有导出工具,但是只有当你用的时候,你才能体会导出工具是多坑爹。 假如你一天决定不用这个平台了,你想把所有你产出的内容都迁移出来,你要花费多少成本呢? 很多人都没有考虑过这件事情。 就像温水煮青蛙,只有感觉到烫的时候,青蛙才会准备跳走,但是青蛙还能跳出去吗? 可能他的腿都已经煮熟了吧? 从另外一个方面来说,作为内容生产者,我们要花时间,花精力来写文章,还要花金钱来买平台的会员,然而平台对内容生产者来说,有什么回报呢? 我们只不过是为他人做嫁衣罢了。就像旧时代的长工,只不过在一个大一点的地主家干活了吧。 再见了,语雀。 新的bolg地址: wdd.js.org 我以前没得选,我现在想选择做个自由人

2022-06-30 22:40:56 · 1 min · Eddie Wang

vfs_cache_pressure和min_free_kbytes对cache的影响

环境 kernal Linux 5.15.48-1-MANJARO #1 SMP PREEMPT Thu Jun 16 12:33:56 UTC 2022 x86_64 GNU/Linux docker 20.10.16 初始内存 total used free shared buff/cache available 内存: 30Gi 1.9Gi 19Gi 2.0Mi 9.6Gi 28Gi 交换: 0B 0B 0B 初始配置 sysctl -n vm.min_free_kbytes 67584 sysctl -n vm.vfs_cache_pressure 200 vfs_cache_pressure的对内存的影响 vfs_cache_pressure设置为200, 理论系统倾向于回收内存

2022-06-29 06:57:56 · 1 min · Eddie Wang