vlan

“vlan” vlan范围: 0~4095 0,4095 保留 仅限系统使用 用户不能查看和使用这些VLAN 1 默认 VLAN 用户能够使用该 VLAN,但不能删除它 2-1001 正常 用于以太网的 VLAN 用户可以创建、使用和删除这些VLAN 1002-1005 正常 用于 FDDI 和令牌环的, VLAN 用户不能删除这些 VLAN 1006-1024 保留 仅限系统使用 用户不能查看和使用这些VLAN 1025-4094 扩展 仅用于以太网VLAN Tagged 数据帧 Tagged数据帧 Untagged数据帧 Untagged数据帧 in out in out Tagged端口 原样接收 原样发送 按端口PVID打TAG标记 按照PVID打TAG标记 Untagged端口 丢弃 去掉TAG标记 按端口PVID打TAG标记 原样发送 2 、所谓的Untagged Port和tagged Port不是讲述物理端口的状态,而是将是物理端口所拥有的某一个VID的状态,所以一个物理端口可以在某一个VID上是Untagged Port,在另一个VID上是tagged Port; 3 、一个物理端口只能拥有一个PVID,当一个物理端口拥有了一个PVID的时候,必定会拥有和PVID的TAG等同的VID,而且在这个VID上,这个物理端口必定是Untagged Port; 4. PVID的作用只是在交换机从外部接受到可以接受Untagged 数据帧的时候给数据帧添加TAG标记用的,在交换机内部转发数据的时候PVID不起任何作用; 5. 拥有和TAG标记一致的VID的物理端口,不论是否在这个VID上是Untagged Port或者tagged Port,都可以接受来自交换机内部的标记了这个TAG标记的tagged 数据帧; 6. 拥有和TAG标记一致的VID的物理端口,只有在这个VID上是tagged Port,才可以接受来自交换机外部的标记了这个TAG标记的tagged 数据帧; ...

Created 2026-08-02 · Updated 2026-08-02 · 1 min · 73 words · -

pppoe

“pppoe” PPP: Point-to-Point Protocol,链路层协议。用户实现点对点的通讯。 PPPoE的工作过程分成两个阶段,即发现阶段(Discorvery)和PPP会话阶段。 发现阶段(Discovery Stage)的具体过程如下: 用户主机用广播的方式发出PADI (PPPOE Active Discovery Initiatio) 包,准备去获得所有可连接的接入设备 (获得其MAC地址) ; 接入设备收到PADI包后,返回PADO (PPPOE Active Discovery Offer) 作为回应; 用户主机从收到的多个PADO包中,根据其名称类型名或者服务名,选择一个合适的接入设备,然后发送PADR (PPPOE Active Discovery Request) 包,另外如果一个用户主机在发出PADI后在规定时间内没有收到PADO,则会重发PADI; 接入设备收到PADR包后,返回PAS (PPPOE Active Discovery Session-confirmation) 包,其中包含了一个唯一session ID,双方进入PPP会话阶段。 PPP会话阶段,即在session建立后的通讯阶段。 另外,无论是用户主机还是接入设备可随时发起PADT包,中止通讯。 与PPPoE相对应的获得地址和认证的是DHCP,但普通家庭用户很少直接使用DHCP方式接入互联网 (这里说的DHCP不是自家路由器上的DHCP,而是互联网运营商的DHCP) 。PPPoE和DHCP的区别是: 前者需要身份验证才能上网,后者什么都不需要,直接接上网线即可。当然了,具体获得IP地址的方式还有很多。 PPP协议介绍 PPP 点对点协议(Point to Point Protocol)属于二层协议,隧道协议的一种。为在点对点连接上传输多协议数据包提供了一个标准方法。PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协议。在 TCP/IP中它是一种用来同步调制连接的数据链路层协议 (OSI 模式中的第二层) ,替代了原来非标准的第二层协议,即 SLIP。除了 IP 以外 PPP 还可以携带其它协议,包括 DECnet 和 Novell 的 Internet 网包交换 (IPX) 。 为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。 PPP协议主要包括三部分: LCP (Link Control Protocol) 链路控制协议、NCP (Network Control Protocol) 网络控制协议和PPP的扩展协议 (如Multilink Protocol) ,比如认证协议,最常用的包括口令验证协议PAP (Password Authentication Protocol) 和挑战握手验证协议CHAP (Challenge-Handshake Authentication Protocol) 。 ...

Created 2026-08-02 · Updated 2026-08-02 · 2 min · 294 words · -

RESTful api

“RESTful api” http://www.ruanyifeng.com/blog/2014/05/restful_api.html 路径 (Endpoint) 路径又称"终点" (endpoint) ,表示API的具体网址。 在RESTful架构中,每个网址代表一种资源 (resource) ,所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。一般来说,数据库中的表都是同种记录的"集合" (collection) ,所以API中的名词也应该使用复数。 举例来说,有一个API提供动物园 (zoo) 的信息,还包括各种动物和雇员的信息,则它的路径应该设计成下面这样。 https://api.example.com/v1/zoos https://api.example.com/v1/animals https://api.example.com/v1/employees HTTP动词 对于资源的具体操作类型,由HTTP动词表示。 常用的HTTP动词有下面五个 (括号里是对应的SQL命令) 。 GET (SELECT) : 从服务器取出资源 (一项或多项) 。 POST (CREATE) : 在服务器新建一个资源。 PUT (UPDATE) : 在服务器更新资源 (客户端提供改变后的完整资源) 。 PATCH (UPDATE) : 在服务器更新资源 (客户端提供改变的属性) 。 DELETE (DELETE) : 从服务器删除资源。 还有两个不常用的HTTP动词。 HEAD: 获取资源的元数据。 OPTIONS: 获取信息,关于资源的哪些属性是客户端可以改变的。 参数命名规范 query parameter可以采用驼峰命名法,也可以采用下划线命名的方式,推荐采用下划线命名的方式,据说后者比前者的识别度要高,其中,做前端开发基本都后后者,而做服务器接口开发基本用前者。 http://example.com/api/users/today_login 获取今天登陆的用户 http://example.com/api/users/today_login&sort=login_desc 获取今天登陆的用户、登陆时间降序排列 REST API规范 编写REST API,实际上就是编写处理HTTP请求的async函数,不过,REST请求和普通的HTTP请求有几个特殊的地方: REST请求仍然是标准的HTTP请求,但是,除了GET请求外,POST、PUT等请求的body是JSON数据格式,请求的Content-Type为application/json; REST响应返回的结果是JSON数据格式,因此,响应的Content-Type也是application/json。 REST规范定义了资源的通用访问格式,虽然它不是一个强制要求,但遵守该规范可以让人易于理解。 https://www.liaoxuefeng.com/wiki/1022910821149312/1105003357927328 https://www.ruanyifeng.com/blog/2018/10/restful-api-best-practices.html

Created 22226-07-22 · Updated 22226-07-22 · 1 min · 71 words · -

摄影

“摄影” 曝光三要素 对于新人来说,最基本的知识就是曝光三要素: 光圈、快门、感光度。这是最重要的三个元素,利用这三个元素的不同组合,控制正常的曝光。 光圈, Aperture 光圈越大,通光量就越多,光圈越小,通光量就越少。 光圈值 光圈值用字母F 或f表示,常见的光圈有F1.4,F2.0,F2.8,F4.0,F5.6,F8.0,F11,F16,F22,F32,F36. 数值越小表示光圈越大。 光圈是用来控制镜头孔径大小的部件, 我们可以把光圈比作水龙头,水龙头开的越大,水流的就越多。光圈也是如此,光圈开的越大,进光量就越多。拍出的照片就会更加明亮。光圈通常用字母"F"来表示,F越大,光圈越小。例如: F1.8>F11。 光圈对背景虚化的影响 光圈是控制景深的重要因素,那些喜欢拍背景虚化的照片可要注意了。光圈越大,景深越浅,背景虚化越明显。光圈越小,景深越深,背景虚化程度越小。 光圈对画面亮度的影响 其它曝光值不变 (快门,ISO) 的情况下,光圈越大,画面越明亮,光圈越小,画面越暗,甚至看不清东西。当然平时拍摄很少故意把画面调到非常亮或者非常暗这么极端,这样测试可以更好的理解光圈对曝光的影响。 小光圈的作用 大光圈固然有很多好处,但并非越大越好。在拍摄大场景的风光时,使用F8,F11等较小的光圈能表现出更优秀画质和更好的画面细节。使用F16或者更小的光圈,拍摄光源 (如太阳) 会呈现出星芒效果,非常漂亮。星芒的形状取决于镜头光圈的叶片数量和形状。 快门 它是控制相机进光量的快慢,在同样的光圈和感光度下,快门速度的时间越长,那么进光量就越多,照片就越亮。我们还可以把它比作水龙头,当水龙头开的时间越长,那么流出的水越多,也就是说进光量越多。在此提醒一下大家,照片的快门速度越慢,手持相机不稳,容易抖动,造成照片模糊。 快门值 以秒为单位,入门微单一般1/4000s到30s之间。已经可以满足绝大部分拍摄题材。在快门优先和手动曝光拍摄模式下可以手动调节快门。 安全快门 简单来说,是指在手持相机情况下拍摄不容易出现照片模糊的快门时间,低于这个时间则可能容易模糊。通常全画幅相机的安全快门值为1/焦距,APS-C为1/(1.5X焦距)。 例如: 使用50mm的镜头焦距APS-C的 a6000安全快门时间为 1/75s,全画幅的a7系列为1/50s。 平常拍摄并不一定要按快门时间来,现在的很多相机或者镜头都有防抖功能,大大降低了安全快门的时间,手持相机带来的抖动也因人而异,平常多练习也可以降低安全快门的时间。 高速快门与慢快门的作用 快门记录拍摄对象的瞬间,慢门记录拍摄对象的过程。相对而言,慢门的玩法更多,比如流云,光绘,平滑效果等。 感光度 (ISO) 感光度是控制照片明暗的,它与光圈和快门的原理不同,快门和光圈都是控制进光量的,而感光度是提升相机感光元件灵敏度的。简单来说: 感光度越低,照片越暗;感光度越高,照片越亮。随着感光度的提升,照片的噪点也会越多,画质就会有所下降。在白天阳光好的时候拍摄照片,感光度100-200就够用,黑暗的条件下,为了得到正确的曝光,提升感光度也是可以的,唯一的缺点就是会损失一定的画质 Av档 光圈优先档,在此模式下,调节光圈的大小,在拍摄时,快门时间根据现场环境自动调节,保证拍出曝光正常的照片。这种模式有什么好处呢?通过控制光圈大小来控制景深,在拍摄的时候不需要考虑快门速度了,相机会根据现场的情况自动设定好快门速度,从而得到正确的曝光。尤其是在弱光条件下拍摄,使用低快门会导致画面的抖动而模糊,这时候保证光圈的大小不变,调整好感光度,从而提高快门速度。 Tv档 快门优先模式,在此模式下,调节快门速度的快慢,拍摄时,光圈大小根据现场环境自动调节,以保证拍出曝光正常的照片。Tv档比较适合拍摄运动的物体,尤其是快速奔跑的物体,快门速度如果过慢,就容易导致画面模糊,高速快门则可以让画面更清晰。同时,快门优先模式还可以拍摄夜间的车流,利用较慢的快门速度,拍出轨迹。 M档 手动模式,在这种模式下,光圈、快门、感光度都需要自己根据现场情况手动调节。手动模式对于新手很难操作,新手不仅要对现场的环境光线情况作出合理的判断,还要合理的调节好各项参数。相对新手而言,要不断的练习,慢慢的积累,才能熟练运用M档。 测光 首先解释一下什么是测光。测光是检测相机进光量的多少,物体反射的光进入到相机中,相机会根据光线的明暗情况,对物体进行曝光。我们的人眼可以对物体的明暗程度进行判断,从而调节进光量,但相机却不能,所以相机在拍摄物体时需要测光。 测光分为: 平均测光、 点测光、 中央重点测光、 局部测光。 平均测光 它是将取景画面分成不同的几块、分别对各部分进行测光,最后取平均值,相机根据这个平均值来进行曝光。 点测光 它是只对取景画面中的一小部分进行测光,相机会根据这一小块区域的亮度进行对照片进行曝光。点测光比较适用于光线明暗对比大的场景,比如日出、日落。 中央重点测光 它是对取景画面的中央60%,四周40%进行测光,这种测光模式可以保证你拍出的照片不会过亮或是过暗。 局部测光 它是以取景画面某一局部进行测光,主要是以取景框中心的一个圆圈中的光线来进行测光。利用局部测光你可以更好的掌握照片的明暗。 白平衡 白平衡是相机中用来平衡光线色彩偏移的功能,能够帮助相机在不同的光线或者色温下,还原被拍摄物体最真实的颜色,也就是矫正色差。想正确的调节白平衡,我们还要知道与白平衡对应的色温,色温是指光线色调的指标,它的单位是K。色温越高,光的颜色越蓝;色温越低,光的颜色越黄;白平衡值越高,对蓝光的平衡能力越强,画面会变得越黄。我们可以根据这个原来来调节白平衡的数值。相机上也自带了很多种白平衡模式: 自动、白炽灯、荧光灯等等。这些模式可以满足大部分拍摄需求 曝光补偿曝光补偿可以控制照片的明暗,在拍摄照片的时候总会遇到过曝或者欠曝的时候,这时候就可以利用曝光补偿来进行修正。曝光补偿向左调,照片会变暗,向右调,照片会变亮。在拍摄雪景的时候,曝光补偿就经常被用到,对于白色的雪,相机测光的时候仅仅接收18%的光线,所以我们拍摄的照片并不是纯白的,而是灰色的,这时候就要增加一点曝光补偿,让雪的颜色看起来更白。 在B站学摄影 左手plus Sony A6000 入门 http://www.sonystyle.com.cn/products/nex/ilce_6000.htm ...

Created 19196-07-19 · Updated 19196-07-19 · 1 min · 135 words · -

debian ubuntu ca

“debian ubuntu ca” https://www.jianshu.com/p/abcee3270e9a mkdir /usr/share/ca-certificates/extra cp /tmp/$1.crt /usr/share/ca-certificates/extra/$1.crt update-ca-certificates 直白的说,运行这个工具,它最终会更新 /etc/ssl/certs/ca-certificates.crt 文件。这下你应该明白了,有了这个文件,不管是 Curl 还是 openssl 在发送 HTTPS 请求的时候,都可以校验 HTTPS 网站的真实身份了。 具体执行步骤如下: 读取 /etc/ca-certificates.conf 文件,包含的内容就是所有 /usr/share/ca-certificates/mozilla/ 目录下的证书文件名。 将 /etc/ca-certificates.conf 文件对应的所有证书合并到 /etc/ssl/certs/ca-certificates.crt 文件中。 作者: 虞大胆的叽叽喳喳 链接: https://www.jianshu.com/p/abcee3270e9a 来源: 简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Created 8086-07-08 · Updated 8086-07-08 · 1 min · 39 words · -

golang 生成二维码

“golang 生成二维码” import "github.com/skip2/go-qrcode" func main() { qrcode.WriteFile("http://www.wiloon.com/",qrcode.Medium,256,"./blog_qrcode.png") }

Created 8086-07-08 · Updated 8086-07-08 · 1 min · 9 words · w1100n

novnc

novnc https://github.com/novnc/noVNC https://novnc.com/info.html podman run \ -e REMOTE_HOST=192.168.50.114 \ -e REMOTE_PORT=5900 \ -p 8082:8081 \ -d \ --name novnc-dell \ dougw/novnc nginx config server { listen 80; server_name vnc.wiloon.com; location / { proxy_pass http://192.168.50.114:8082; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header X-Real-IP $remote_addr; proxy_connect_timeout 1d; proxy_send_timeout 1d; proxy_read_timeout 1d; } }

Created 28286-06-28 · Updated 28286-06-28 · 1 min · 53 words · -

chrome basic

“chrome basic” # dns lookup chrome://net-internals/#dns 不使用页面缓存进行刷新 Shift+F5 清除dns缓存 chrome://net-internals/#dns chrome://flags chrome 导出 netlogs chrome://net-export/ 分析 netlogs https://netlog-viewer.appspot.com/ Chrome 清除某个特定网站下的缓存 https://www.cnblogs.com/Chesky/p/chrome_disabling_cache.html 打开开发者工具 (F12), 选择 Network——Disable cache 即可。需要清除某网站缓存时 F12 打开开发者工具就会自动清除这个网站的缓存,而不必清除所有网站的缓存了。 huge CPU usage of gnome-keyring-daemon when starting Google Chrome google-chrome –password-store:basic How to prevent the huge CPU usage of gnome-keyring-daemon when starting Google Chrome https://www.andreafortuna.org/technology/linux/how-to-prevent-the-huge-cpu-usage-of-gnome-keyring-daemon-when-starting-google-chrome/embed/#?secret=NSkQcrRM22 chrome 参数 修改默认用户目录, todo merge chrome.exe --user-data-dir=D:\chrome --no-default-browser-check extensions Language Reactor, youture 中英文字幕 /etc/hosts https://stackoverflow.com/questions/42636711/google-chrome-ignoring-hosts-file

Created 27276-06-27 · Updated 27276-06-27 · 1 min · 69 words · -

dns config

“dns config” 主机记录 www : 将域名解析为www.example.com,填写www; @ : 将域名解析为example.com (不带www) ,填写@或者不填写; mail : 将域名解析为mail.example.com,通常用于解析邮箱服务器; *: 泛解析,所有子域名均被解析到统一地址 (除单独设置的子域名解析) ; 解析线路 为加速访问域名,可设置与用户相同的网络类型,但用户的网络类型多种多样,所以解析线路设置为默认,这样DNS服务商一般会智能使用解析线路,当判断访问者来源为联通用户,就将域名解析到联通的服务器IP上;当判断访问者来源为电信用户,就将域名解析到到电信的服务器IP上。 作者: 大猫黄 链接: https://www.jianshu.com/p/d1840c71a57c 来源: 简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Created 26266-06-26 · Updated 26266-06-26 · 1 min · 27 words · -

nginx config, tls

“nginx config, tls” ssl_certificate: 服务器的 SSL 证书文件的路径。该证书用于证明服务器的身份,并与客户端建立安全连接。通常,这个文件包含服务器的公钥信息。 ssl_certificate_key: 服务器证书匹配的私钥文件路径。私钥用于解密客户端传来的信息,因此必须保密并妥善保护。 ssl_trusted_certificate: 一个或多个被信任的证书颁发机构(CA)的证书文件路径。它用于验证客户端证书的真实性,尤其在启用客户端证书验证时。在大多数情况下,使用 Let’s Encrypt 证书时不需要单独指定这个文件,因为 fullchain.pem 已经包含了必要的中间证书链,通常足以满足大多数应用的验证需求。 TLS, nginx config include cat > /etc/nginx/tls.conf << EOF ssl_certificate /etc/letsencrypt/fullchain.pem; ssl_certificate_key /etc/letsencrypt/privkey.pem; ssl_protocols TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; EOF vim /etc/nginx/conf.d/default.conf # server config server { listen 443 ssl; server_name foo.wiloon.com; include /etc/nginx/tls.conf; location / { # ... } } stream pacman -Sy nginx-mainline-mod-stream 代理远程桌面 3389 的 tcp 连接 stream { upstream mstsc { server 1.2.3.4:3389; } server { listen 1082; proxy_pass mstsc; } } tls server { #ssl参数 listen 443 ssl; # 多域名配置 server_name foo.wiloon.com bar.wiloon.com; #证书文件 ssl_certificate example.com.crt; #私钥文件 ssl_certificate_key example.com.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; #... } 静态网站 server { listen 80; server_name localhost; #charset koi8-r; access_log /var/log/nginx/host.access.log main; error_log /var/log/nginx/error.log error; location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } https://aotu.io/notes/2016/08/16/nginx-https/index.html ...

Created 26266-06-26 · Updated 26266-06-26 · 1 min · 213 words · -

OKR

“OKR” OKR (Objectives and Key Results) https://www.infoq.cn/profile/1218094/publish https://www.infoq.cn/article/Vl2uK8owDjj1pJG6ZrDD https://www.infoq.cn/article/Z3LA3We5qKcfsqTUrHSG 蝴蝶效应: 一只南美洲亚马逊河流域热带雨林中的蝴蝶,偶尔扇动几下翅膀,可以在两周以后引起美国得克萨斯州的一场龙卷风。蝴蝶效应意味着世界处于混沌状态,事务之间的联系错综复杂,不可掌控。 典型的就是"一个香港人在台湾杀了自己的女友,导致在中国看不了 NBA 比赛"。 黑天鹅: 在发现澳大利亚之前,欧洲人认为所有天鹅都是白色的,还常用"黑天鹅"来指不可能存在的事物。但欧洲人这个信念却随着第一只黑天鹅的出现而崩溃。因为,黑天鹅的存在代表不可预测的重大稀有事件,意料之外却又改变一切。黑天鹅意味着极小概率事件带来的大影响。 典型的就是"非典 SARS"、“新冠状病毒"这样的极小概率的跨界病毒感染和传播带来的巨大影响。 灰犀牛: 灰犀牛体型笨重、反应迟缓,你能看见它在远处,却毫不在意,一旦它向你狂奔而来,定会让你猝不及防,直接被扑倒在地。它并不神秘,却更危险。灰犀牛意味这经常被提示却没有得到充分重视的大概率风险事件。 日常的学习和工作中,我们经常会看到: 想要的太多,从而使得精力和资源比较分散 分不清楚优先级 / 价值,总是被低优先级 / 价值的事情干扰 被紧急的事情占用了太多时间,重要的事情没时间做 《管理 3.0》 (Jurgen Appelo) 中"激励员工"是其六大支柱之一,Jurgen 把内在动力总结为 10 个因素,我们称为"冠军蛙"CHAMP-FROGS: Curiosity (好奇) : 思考的需要 Honor (荣誉) : 受团队尊重的需要 Acceptance (认可) : 被认同的需要 Mastery (能力) : 感到胜任的需要 Power (权力) : 有影响的需要 Freedom (自由) : 感受到独立的需要 Relatedness (关系) : 朋友的需要 Order (有序) : 稳定环境的需要 Goal (目的) : 意义的需要 Status (地位) : 社会地位的需要

Created 6066-06-06 · Updated 6066-06-06 · 1 min · 76 words · -

letsencrypt, certbot, certbot-auto, acme.sh

“letsencrypt, certbot, certbot-auto, acme.sh” certbot, certbot-auto, acme.sh certbot: recommended by the official website. certbot-auto: no longer supported. acme.sh: 第三方的 acme 协议实现. install certbot almalinux pip sudo dnf install python3 augeas-libs sudo dnf remove certbot python3 -m venv /opt/certbot/ /opt/certbot/bin/pip install --upgrade pip /opt/certbot/bin/pip install certbot certbot-nginx ln -s /opt/certbot/bin/certbot /usr/bin/certbot archlinux pacman -S certbot ubuntu # 不推荐用这种方式安装, 版本太旧 sudo apt install certbot # 如果以前安装过, 先卸载掉再安装 snap 版本 sudo apt-get remove certbot sudo apt update # for ubuntu snap is pre-installed sudo apt install snapd sudo snap install core sudo snap refresh core sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot snap set certbot trust-plugin-with-root=ok # 如果在使用 google dns, 需要安装这个包 snap install certbot-dns-google certonly # certonly: do not install, 不安装到 nginx, 因为 nginx 在 docker 里, 所以这里用 certonly # -m: provide email # --agree-tos: tos yes # --eff-email: share email yes # --keep-until-expiring: keep cert yes certbot certonly --standalone -m wiloon.wy@gmail.com --agree-tos --eff-email --keep-until-expiring \ -d wiloon.com -d bitwarden.wiloon.com certbot certonly --standalone -m wiloon.wy@gmail.com --agree-tos --eff-email --keep-until-expiring -d wangyue.dev # list all certificates issued by certbot certbot certificates # select and delete certificates certbot delete # for google dns certbot certonly --dns-google --dns-google-credentials /root/cellular-deck-280204-6455aa19691d.json -d wiloon.com -d *.wiloon.com commands # 查看证书, 查看已经安装的证书 certbot certificates centos dnf update dnf remove certbot dnf install epel-release dnf install snapd systemctl enable --now snapd.socket snap install core snap refresh core ln -s /var/lib/snapd/snap /snap snap install --classic certbot ln -s /snap/bin/certbot /usr/bin/certbot snap set certbot trust-plugin-with-root=ok snap install certbot-dns-google Couldn’t download https://raw.githubusercontent.com/certbot/certbot/v0.39.0/letsencrypt-auto-source/letsencrypt-auto. [urlopen error [Errno 110] Connection timed out](urlopen error [Errno 110] Connection timed out) ...

Created 4046-06-04 · Updated 4046-06-04 · 3 min · 542 words · -

渐进式框架

“渐进式框架” https://www.zhihu.com/question/51907207 渐进式框架的大概意思就是你可以只用我的一部分,而不是用了我这一点就必须用我的所有部分。 渐进式代表的含义是: 主张最少。 Angular,它两个版本都是强主张的,如果你用它,必须接受以下东西: - 必须使用它的模块机制 - 必须使用它的依赖注入 - 必须使用它的特殊形式定义组件 (这一点每个视图框架都有,难以避免) React,它也有一定程度的主张,它的主张主要是函数式编程的理念,比如说,你需要知道什么是副作用,什么是纯函数,如何隔离副作用。它的侵入性看似没有Angular那么强,主要因为它是软性侵入。 vue是渐进的,没有强主张,你可以在原有大系统的上面,把一两个组件改用它实现,当jQuery用;也可以整个用它全家桶开发,当Angular用;还可以用它的视图,搭配你自己设计的整个下层用。你可以在底层数据逻辑的地方用OO和设计模式的那套理念,也可以函数式,都可以,它只是个轻量视图而已,只做了自己该做的事,没有做不该做的事,仅此而已。 渐进式的含义,我的理解是: 没有多做职责之外的事。 作者: 徐飞 链接: https://www.zhihu.com/question/51907207/answer/136559185 来源: 知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Created 2026-06-02 · Updated 2026-06-02 · 1 min · 24 words · -

DKMS

“DKMS” DKMS 我们都知道,如果要使用没有集成到内核之中的Linux驱动程序需要手动编译。当然,这并不是一件什么难事,即使是对于没有编程经验的Linux使用者,只要稍微有点hacker的意识,努力看看代码包里的Readme或者INSTALL文件,按部就班的执行几条命令还是很容易办到的。但这里还有一个问题,Linux模块和内核是有依赖关系的,如果遇到因为发行版更新造成的内核版本的变动,之前编译的模块是无法继续使用的,我们只能手动再编译一遍。这样重复的操作有些繁琐且是反生产力的,而对于没有内核编程经验的使用者来说可能会造成一些困扰,使用者搞不清楚为什么更新系统之后,原来用的好好的驱动程序突然就不能用了。这里,就是Dell创建的DKMS项目的意义所在。DKMS全称是Dynamic Kernel Module Support,它可以帮我们维护内核外的这些驱动程序,在内核版本变动之后可以自动重新生成新的模块。 https://www.cnblogs.com/wwang/archive/2011/06/21/2085571.html https://www.cnblogs.com/wwang/archive/2011/06/21/2085571.html

Created 30306-05-30 · Updated 30306-05-30 · 1 min · 8 words · -

vue-router的两种模式

“vue-router的两种模式” 为什么要有 hash 和 history 对于 Vue 这类渐进式前端开发框架,为了构建 **SPA (单页面应用) **,需要引入前端路由系统,这也就是 Vue-Router 存在的意义。前端路由的核心,就在于 —— 改变视图的同时不会向后端发出请求。 为了达到这一目的,浏览器当前提供了以下两种支持: hash —— 即地址栏 URL 中的 # 符号 (此 hash 不是密码学里的散列运算) 。 比如这个 URL: http://www.abc.com/#/hello,hash 的值为 #/hello。它的特点在于: hash 虽然出现在 URL 中,但不会被包括在 HTTP 请求中,对后端完全没有影响,因此改变 hash 不会重新加载页面。 history —— 利用了 HTML5 History Interface 中新增的 pushState() 和 replaceState() 方法。 (需要特定浏览器支持) 这两个方法应用于浏览器的历史记录栈,在当前已有的 back、forward、go 的基础之上,它们提供了对历史记录进行修改的功能。只是当它们执行修改时,虽然改变了当前的 URL,但浏览器不会立即向后端发送请求。 因此可以说,hash 模式和 history 模式都属于浏览器自身的特性,Vue-Router 只是利用了这两个特性 (通过调用浏览器提供的接口) 来实现前端路由。 使用场景 一般场景下,hash 和 history 都可以,除非你更在意颜值,# 符号夹杂在 URL 里看起来确实有些不太美丽。 ...

Created 24246-05-24 · Updated 24246-05-24 · 1 min · 189 words · -

敏捷开发,瀑布开发

“敏捷开发,瀑布开发” 敏捷开发 客人到餐馆来点菜 (新项目) 不确定客户想吃什么的时候,通常选好餐厅后会先看看餐厅的菜单 (客户往往提不出具体的需求) 根据图文菜单,客人点了是个菜 (根据原型和设计稿,基本确定了需求) 后厨开始准备 (项目启动) 配菜、炒菜,先上了两盘,让客人尝了尝味道 (先提供可用实例给客户用) 客人说还不错,后厨继续准备后面的菜,陆续上菜 (不断迭代,不断测试) 上菜过程中,客人突然发现有个菜的味道太淡了,让后厨加了点盐又端上来了 (敏捷的好处,可以不断测试和需求变更) 又上了两盘,不够辣,又拿到后厨加了辣 (敏捷的坏处,需求没有提前明确,反复迭代,增加了工作量) 到最后两盘时,客人要求换两个菜,还好没炒 (迭代的好处,随时接受需求变更) 客人吃完,很满意 (基本满足了全部的要求) (在举个例子) 打个比方,客户说他想要造一座金字塔,你作为"咨询师",认为这座金字塔要造10年,肯定不能指望一次设计好就一口气做完,于是问客户这个金字塔是要干什么?客户说要当坟墓,于是,你提出先做一个小坟墓的功能,能装木乃伊那种。客户同意了,你哐哧哐哧做了一个月,制造了一个小型地下墓室,演示给客户看,客户看了,一拍大腿,说看到这个墓室才想明白,其实他要的不是金字塔,要的是一个有排场的墓地,这样简陋埋在地下的墓室不够牛逼,于是你和客户达成第二阶段设计,做一个带兵马俑方阵来让这个墓地显得有排场,客户同意了,于是你又哐哧哐哧做了一个月,做了一个小型兵马俑方阵。客户看了兵马俑方阵,又一拍大腿,说这个方阵还真牛逼,但是能不能增加一些现代元素,把古代兵马俑换成现代装甲兵团,你于是又…… (如此,周而复始,每个阶段只完成客户一个需要,当然,我上面只是一个荒诞的例子,但是你应该能够get到敏捷的含义。) 瀑布模型开发 客人到餐馆来点菜 (新项目) 不确定客户想吃什么的时候,通常选好餐厅后会先看看餐厅的菜单 (客户往往提不出具体的需求) 根据图文菜单,客人点了十个菜 (根据原型和设计稿,基本确定了需求) 后厨开始准备 (项目启动) 根据客人的下单配菜,炒菜 (基本上不会主动去了解完整需求) 半个小时了,菜还没上桌,客人饿极了 (项目启动后很长一段时间客户什么都看不到) 再过了二十分钟,十个菜都一起上来了 (项目最终一次交付) 客人说,有几个菜挺好的,但是有个菜味道淡了,有两个不够辣,还有两盘重复了想换掉 (我是买单的,我- 要变需求) 这时候大堂经理来了,说,“味道淡了可以加盐,不辣可以加辣,但是换菜不行,已经炒好的那两盘菜也是要算成本的” (瀑布的坏处,需求变更比较麻烦) 于是,后厨只给客户加了盐,加了辣 客人吃完,不是很满意,下次不来了 (没有满足需求) 总结 但总的来说,在现在管理项目过程中,并没有严格的按照完全的敏捷或者完全的瀑布模式,都是各自掺杂了其他的方式。在实际项目过程中,过于强调模式并没有意义,重要的是能不能预防问题的发生,在问题发生之后能不能用最小的成本解决,模式更多起一个参考作用 最后借用民国时候的一句话: 少研究一些主义,多关注一些实际问题 (net) 作者: zhaur 链接: https://www.jianshu.com/p/ca5f242cf2bb 来源: 简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Created 23236-05-23 · Updated 23236-05-23 · 1 min · 60 words · -

企业微信api

“企业微信api” REDIRECT_URL中的域名,需要先配置至应用的"可信域名"

Created 23236-05-23 · Updated 23236-05-23 · 1 min · 2 words · -

chrome 禁用http到https的自动转换

“chrome 禁用http到https的自动转换” Go to chrome://net-internals/#hsts. Enter 3rdrevolution.com under Delete domain security policies and press the Delete button. Now go to chrome://settings/clearBrowserData, tick the box Cached images and files and press click the button Clear data. https://superuser.com/questions/565409/how-to-stop-an-automatic-redirect-from-http-to-https-in-chrome

Created 23236-05-23 · Updated 23236-05-23 · 1 min · 36 words · -

Vue 跨域

Vue 跨域 缘起 最近实验课上需要重构以前写过的一个项目 (垃圾堆) ,需要添加发生邮件提醒的功能,记得以前写过一个PHP版的实现,所以想把PHP写的功能整理成一个服务,然后在前端调用。但是这个项目是JavaWeb,也就是说我需要面对跨域的问题。不过本篇文章,讲的并不是如何解决这样的跨域问题,而是我在找如何解决这个问题的路上遇到的坑。 其实,在前端工程化大行其道的现在,前后端已经分离开来,前端为了提高工作流效率往往自己开一个小型的服务器,就比如webpack.devServer。这样在前端调用后端接口的时候必然会面临跨域的问题, 如题,Vue-cli 3.x + axios 跨域方案 就是解决这里的跨域问题。这里的跨域是基于webpack的devServer的代理功能 (proxy) 来实现开发环境中的跨域,也就是说本篇所讨论的并不能解决生产环境下的跨域问题,因为webpack.devServer是DevDependencies,一旦打包上线,这个proxy代理就会失效。但是这并不妨碍我们开发中使用跨域来提高开发效率和体验。 开始填坑 其实这个问题解决起来很简单,网上也是很多教程,为了文章完整性,我这里也做一个尽量完备的展示,介绍如何配置Vue-cli 3.x来实现跨域 。 vue.config.js中devServer.proxy 的配置解析 Vue-cli3.x比Vue-cli2.x构建的项目要简化很多,根目录下只有./src和./public文件夹,所以网上很多教程说config目录下的vue.config.js是说的vue-cli 2.x版本。那么对于Vue-cli 3.x版本,构建也很简单,直接在根目录里建一个vue.config.js配置文件就可以了,我们直接看devServer.proxy里的代码: 我这里devServer的地址是: localhost:8080/,需要代理的地址是: localhost/index/phpinfo.php (我自己写的一个测试跨域用的php,返回一个’ok') 下面是根据上面的地址需要配置的proxy对象 module.exports = { devServer: { proxy: { '/api': { target: 'http://192.168.80.2:38081', ws: true, changeOrigin: true, pathRewrite: { '^/api': '' } } } } } # main.ts axios.defaults.baseURL = '/api' 大部分教程到这里就停止了,但是我在这里做一个扩展,为了让读者理解这里的配置是如何起作用的 (以下内容整理自http-proxy-middleware的npm描述里,http-proxy-middleware是一个npm模块,是proxy的底层原理实现) 。 foo://example.com:8042/over/there?name=ferret#nose _/ ______________/_________/ _________/ __/ | | | | | scheme authority path query fragment 复制代码 以我上面的配置为例,'/index'这个key在http-proxy-middleware中被称为context——用来决定哪些请求需要被target对应的主机地址 (这里是http://localhost/index) 代理,它可以是 字符串,含有通配符的字符串,或是一个数组,分别对应于path matching(路径匹配)wildcard path matching(通配符路径匹配)multiple path matching(多路径匹配),而这里的path指的就是上图所标识的path段。 ...

Created 22226-05-22 · Updated 22226-05-22 · 1 min · 191 words · -

内联样式

“内联样式” CSS 样式代码插入的形式来看基本可以分为以下3种: 内联式、嵌入式和外部式三种。 内联式css样式表就是把css代码直接写在现有的HTML标签中,如下面代码: 这里文字是红色。 注意要写在元素的开始标签里,下面这种写法是错误的: 这里文字是红色。 并且css样式代码要写在style=““双引号中,如果有多条css样式代码设置可以写在一起,中间用分号隔开。如下代码: 这里文字是红色。 作者: LvyCode 链接: https://www.jianshu.com/p/16b40c7a479a 来源: 简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Created 21216-05-21 · Updated 21216-05-21 · 1 min · 17 words · -