我们的笔记

  • 友情链接
  • 关于

  • 威联通 QTS 启动 Jellyfin,使用 Container Station 容器工作站

    左侧栏新建“应用程序”,下面给出可用的 docker-compose.yml:

    version: '3.5'
    services:
      jellyfin:
        image: jellyfin/jellyfin
        container_name: jellyfin
        user: 0:0
        network_mode: 'host'
        volumes:
          - /share/Container/jellyfin/config:/config
          - /share/Container/jellyfin/cache:/cache
          - /share/Media:/mnt/media:ro
        devices:
          - /dev/dri/renderD128:/dev/dri/renderD128
        restart: 'unless-stopped'
        environment:
          - http_proxy=http://<proxy-host>:<proxy-port>
          - https_proxy=http://<proxy-host>:<proxy-port>
          - HEALTHCHECK_URL=http://<qts/jellyfin-host>:8096/health
        extra_hosts:
          - "host.docker.internal:host-gateway"

    基于 Jellyfin 官方给出的 yml 修改而来,挂载设备以支持硬件解码。由于 QTS 上该设备所有者为 0:0,且权限为 600,无法通过添加 –group-add 参数来让同组不同用户使用该设备,因此只能让这个容器按 root:root 启动了,可能有些许风险。

    添加环境变量以加速元数据刷新,修改健康检查地址使之状态正常。

    引用

    Container | Jellyfin

    Intel GPU | Jellyfin

    domain

    在

    NAS, 互联网时代中年男性

    于

    2023年11月21日

  • domain 的自言自语 2309

    安全

    GitHub – felix-pb/kfd: kfd, short for kernel file descriptor, is a project to read and write kernel memory on Apple devices.

    开发

    推出 RustRover – JetBrains 出品的独立 Rust IDE (qq.com)
    JetBrains 发布 Rust 的独立版本 IDE 预览版,目前免费。

    Port forwarding local services with VS Code (visualstudio.com)

    网络

    获取Tg的用户IP地址 (qq.com)
    STUN 打洞泄露出口 IP。

    https://support.fortinet.com/Download/VMImages.aspx
    虚拟机版本的飞塔。

    WireGuard Endpoint Discovery and NAT Traversal using DNS-SD | Jordan Whited
    WireGuard 的一种 NAT 穿越方案。

    无聊的东西

    cs.uwaterloo.ca/~csk/slide/
    不知道为什么很火的滑动解锁式游戏。

    domain

    在

    自言自语

    于

    2023年9月14日

  • domain 的自言自语 2308

    开发

    面向插件开发者的语言服务器协议(LSP)| 技术解析 (qq.com)
    JetBrains 自 2023.2 大版本开始引入 LSP 支持。

    云原生

    应用容器化后为什么性能下降这么多? (qq.com)

    k8s无法删除namespace-腾讯云开发者社区-腾讯云 (tencent.com)

    混沌故障演练如何尽可能保障生产环境不被破坏 (qq.com)

    网络

    Fortinet ZTNA远程办公解决方案全国首发评测_哔哩哔哩_bilibili
    飞塔的 ZTNA。

    MikroTik CRS310-8G+2S+IN 2.5G交换机 – YuS (irouteros.com)
    MikroTik 发了个新的 2.5G 交换机,个人感觉性价比一般。

    华为HN8145XR拆机,FTTR主光猫 (qq.com)

    嵌入式

    Github上的高热度嵌入式项目之——开源核辐射检测仪 (qq.com)

    其它

    xkcd: Security

    在梅奥诊所查房,站友真的羡慕了! (qq.com)

    domain

    在

    自言自语

    于

    2023年8月31日

  • domain 的自言自语 2307

    开发

    C++ Insights (cppinsights.io)

    云原生

    从 Istio 在 CNCF 毕业,看服务网格的架构变迁 (qq.com)

    CNCF宣布CRI-O项目毕业 (qq.com)

    是时候和 Jenkins 说再见了 (qq.com)

    Linux

    Linux 中不适用功能键切换TTY | 《Linux就该这么学》 (linuxprobe.com)

    网络

    Home (dn42.dev)
    一直没有时间学 BGP…

    光猫改桥接后速度降低的问题与运营商和厂商的探讨 – V2EX
    时间错误导致丢包。

    总结142款运营商定制WiFi6 mesh路由的配置,供大家参考(有几款可刷OPENWRT)-无线路由器硬件改造以及故障维修-恩山无线论坛 – Powered by Discuz! (right.com.cn)
    运营商定制机是真的便宜。

    AI

    人类数据,要被 OpenAI 用完了,然后呢? (qq.com)
    中文互联网的很多优质内容都被掌握在各大厂手里了。

    智能家居

    美的设备怎么进米家联动?教你如何通过易来Pro网关进行跨平台联动_哔哩哔哩_bilibili
    那么,在哪里可以买到呢?

    其它

    GitHub – microsoft/win32-app-isolation: Tools and documentation for Win32 app isolation

    thinking-in-se/《人件 原书第3版》.pdf at master · clsaa/thinking-in-se · GitHub

    无法摆脱的干眼症,放不下手机的一代人 (qq.com)

    节省数亿IT成本,B站FinOps实践 (qq.com)

    如何理解 FinOps? (qq.com)

    domain

    在

    自言自语

    于

    2023年8月14日

  • openSUSE Wicked 重新获取 DHCP 分配的地址

    最近发现,如果在 DHCP 服务器上向 openSUSE 下发了 IPv4 地址,在该地址的老化时间内,即使是重新开启网卡接口、重启系统、重新插拔网线等行为,Wicked 也不会重新获取 IP 地址,查看 wickedd-dhcp4.service 的日志可以发现其检查了 IP 的有效时间,有效期内没有再重新获取一次。

    解决方案

    先删除 /var/lib/wicked 下的所有文件:

    sudo rm -rf /var/lib/wicked/*

    或者是只删除 /var/lib/wicked/lease-eth0-dhcp-ipv4.xml 也可以。

    然后,重启该网卡接口:

    sudo wicked ifdown eth0
    sudo wicked ifup eth0

    此时应该可以观察到 IP 地址已经刷新。

    引用

    Wicked keeps DUID on SLES15 even when NIC is replaced | Support | SUSE

    domain

    在

    没用的知识

    于

    2023年8月14日

  • domain 的自言自语 2306

    网络

    看到了以前好多人在折腾 N5105,偶发的重启问题确实很烦人,最后看评论应该是更新微码可以解决。

    https://www.v2ex.com/t/879368

    Linux

    GNOME 的发音

    https://stuff.mit.edu/afs/athena/astaff/project/aui/html/pronunciation.html

    domain

    在

    自言自语

    于

    2023年7月3日

  • Docker Compose 创建的容器无法访问 host.docker.internal

    在 docker-compose.yml 中的 extra_hosts 字段中加上 host.docker.internal:host-gateway 即可。是的,一个魔法字符串。

    这个并非由 Docker Compose 处理,而是传给 Docker Engine 这层来处理,具体见引用链接中的源码。

    引用

    https://github.com/docker/compose/issues/9768#issuecomment-1570319324

    https://github.com/moby/moby/blob/9dbdbd4b6d7681bd18c897a6ba0376073c2a72ff/daemon/container_operations.go#L112-L129

    domain

    在

    没用的知识

    于

    2023年7月3日

  • 迁移monorepo保留原仓库提交记录

    将代码仓库转移到monorepo如果直接将代码复制到大仓中就会丢失原本的代码提交记录。而大多数情况下我们希望保留提交记录以方便后期问题定位等情况。

    • 在原仓库中进行以下操作,这里注意文件移动需要时间,确保全部文件移动完成后再进行下一步提交操作
    # 移动文件
    git mv -k * projects/{你的项目名}
    git mv -k .* projects/{你的项目名} 
    
    # 提交仓库
    git commit && git push
    • 在迁移目标仓库中进行以下操作
    git remote add -f my-app {原仓库git地址}
    
    git merge my-app/{分支名} --allow-unrelated-histories
    
    git remote remove my-app
    git push
    Allison

    在

    前端

    于

    2023年5月26日

  • parseInt

    parseInt永远将输入解析为字符串

    parseInt({toString: () => 2, valueOf: () => 1}); // -> 2
    Number({toString: () => 2, valueOf: () => 1}); // -> 1
    

    一个常见的栗子

    parseInt("apple"); // -> NaN
    parseInt("apple", 16); // -> 10
    

    上面这个例子是因为parseInt会一个个解析字符直到解析不了,所以解析十六进制中的a为10作为结果返回。

    parseInt Infinity

    parseInt("Infinity", 10); // -> NaN
    // ...
    parseInt("Infinity", 18); // -> NaN...
    parseInt("Infinity", 19); // -> 18
    // ...
    parseInt("Infinity", 23); // -> 18...
    parseInt("Infinity", 24); // -> 151176378
    // ...
    parseInt("Infinity", 29); // -> 385849803
    parseInt("Infinity", 30); // -> 13693557269
    // ...
    parseInt("Infinity", 34); // -> 28872273981
    parseInt("Infinity", 35); // -> 1201203301724
    parseInt("Infinity", 36); // -> 1461559270678...
    parseInt("Infinity", 37); // -> NaN
    

    parseInt null

    parseInt(null, 24); // -> 23
    

    上面的结果都是一样的解析过程,按字母表排序,每个字符对应数字是固定的。比如,I对应18,在18进制中只能解析0-17,所以parseInt("Infinity", 18); // -> NaN,在19进制中就能解析出结果:parseInt("Infinity", 19); // -> 18

    n对应23,在23进制中解析不了,只返回18,在24进制中就是18 * (24 ^ 5) + 23 * (24 ^ 4)+ 15 * (24 ^ 3)+ 18 * (24 ^ 2) + 23 * 24 + 18 = 151176378,其他依此类推。

    八进制

    parseInt("08"); // -> 8, 支持ES5
    parseInt("08"); // -> 0, 不支持ES5
    

    以0开头的数字可以被解析为10进制或8进制,ECMAScript 5规定为10进制,但不是所有浏览器都支持它。所以使用parseInt时指定进制是好习惯,有时可以避免不必要的bug。

    浮点数

    parseInt(0.000001); // -> 0
    parseInt(0.0000001); // -> 1
    parseInt(1/1999999); // -> 5
    

    parseInt 接受一个字符串参数并返回一个指定基数的整数。 parseInt 还会去除字符串参数中第一个非数字之后的任何内容。0.000001转换为字符串后是"0.000001",0.0000001转换后是"1e-7",所以返回1,1/1999999转换后是5.00000250000125e-7,返回结果是5。

    Allison

    在

    JavaScript, 前端

    于

    2023年5月16日

  • 本地开发debug npm包

    使用pnpm包管理

    1. 在本地npm包目录下执行

    pnpm link --global

    2. 如果是cli,可直接在其他项目目录下调用

    3. 如果需要在其他项目中引入npm包,在其他项目目录下执行

    pnpm link --global npm-package-name

    使用npm包管理

    1. 在npm包目录下执行

    npm link

    2. 在其他目录使用

    npm link 本地npm包绝对路径

    官方文档:https://docs.npmjs.com/cli/v9/commands/npm-link

    Allison

    在

    Node, 前端

    于

    2023年5月16日

←上一页
1 … 3 4 5 6 7 … 10
下一页→

我们的笔记

Keep Coding

  • Mail
  • GitHub
  • Telegram
  • 首页
  • 友情链接
  • 关于

粤ICP备2021143753号-1

以 WordPress 设计