IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    love 0
    叶落阁
    发表于
    2023-12-14 07:34:57

    一文看懂JavaScript中的Promise

    一、Promise 是什么Promise是ES6提供的原生对象,用来处理异步操作它有三种状态pending: 初始状态,不是成功或失败状态。fulfilled: 意味着操作成功完成。rejected: 意味着操作失败。二、使用2.1 创建 Promise通过new Promise来实例化,支持链式调用new Promise((resolve, reject)=>{ // 逻辑}).then(()=>{ //当上面"逻辑"中调用 resolve() 时触发此方法}).catch(()=>{ //当上面"逻辑"中调用 reject() 时触发此方法})2.2 执行顺序Promise一旦创建就立即执行,并且无法中途取消,执行逻辑和顺序可以从下面的示例中获得如下,可修改if条件来改变异步结果,下面打印开始的数字是执行顺序在线调试此示例 - jsbinconsole.log('1.开始创建并执行 Promise')new Promise(function(resolve, reject) { console.log('2.由于创建会立即执行,所以会立即执行到本行') setTimeout(()=>{ // 模拟异步请求 console.log('4. 1s之期已到,开始执行异步操作') if ...继续阅读 (176)


    love 0
    叶落阁
    发表于
    2023-12-14 07:34:57

    Docker 技术整理

    一、概述1.1 什么是dockerDocker 诞生于 2013 年初,由 dotCloud 公司(后改名为 Docker Inc)基于 Go 语言实现并开源的项目。此项目后来加入 Linux基金会,遵从了 Apache 2.0 协议Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。Docker 是在 Linux 容器技术(LXC)的基础上进行了封装,让用户可以快速并可靠的将应用程序从一台运行到另一台上。使用容器部署应用被称为容器化,容器化技术的几大优势:灵活:甚至复杂的应用也可以被容器化轻量:容器利用和共享宿主机内核,从而在利用系统资源比虚拟机更加的有效可移植:你可以在本地构建,在云端部署并在任何地方运行松耦合:容器是高度封装和自给自足的,允许你在不破环其他容器的情况下替换或升级任何一个可扩展:你可以通过数据中心来新增和自动分发容器安全:容器依赖强约束和独立的进程1.2 和传统虚拟机的区别容器在Linux上本地运行,并与其他容器共享主机的内核。它运行一个离散进程,不占用任何其他可执行文件更多的内存,从而使其轻巧。1.3 相关链接官网:https://www.docker.com/文档:https://docs.docker.com/二、Image镜像2.1 介绍Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为 ...继续阅读 (181)


    love 0
    叶落阁
    发表于
    2023-12-14 07:34:57

    3-hexo评论设置

    前言目前3-hexo已经集成了评论系统有gitalk、gitment、disqus、来必力、utteranc一、gitalkgitalk 是一款基于 Github Issue 和 Preact 开发的评论插件 官网:https://gitalk.github.io/1. 登录 github ,注册应用点击进行注册,如下注册完后,可得到Client ID和Client Secret2. 新建存放评论的仓库因为gitalk是基于 Github 的 Issue 的,所以需要指定一个仓库,用来承接 gitalk 的评论,我们一般使用 Github Page 来做我们博客的评论,所以,新建仓库名为xxx.github.io,其中 xxx 为你的 Github 用户名3. 配置主题在主题下_config.yml中找到如下配置,启用评论,并使用gitalk##########评论设置#############comment: on: true type: gitalk在主题下_config.yml中找到 gitalk 配置,将 第1步 得到的Client ID和Client Secret复制到如下位置gitalk: githubID: # 填你的 github 用户名 repo: xxx.github.io # 承载评论的仓库,一般使用 Github Page 仓库 C ...继续阅读 (163)


    love 0
    叶落阁
    发表于
    2023-12-14 07:34:57

    3-hexo支持mermaid图表

    一、说明开启安装hexo插件npm install hexo-filter-mermaid-diagrams修改themes/3-hexo/_config.yml的mermaid.on,开启主题支持# Mermaid 支持mermaid:on: truecdn: //cdn.jsdelivr.net/npm/mermaid@8.4.2/dist/mermaid.min.js#cdn: //cdnjs.cloudflare.com/ajax/libs/mermaid/8.3.1/mermaid.min.jsoptions: # 更多配置信息可以参考 https://mermaidjs.github.io/#/mermaidAPI theme: 'default' startOnLoad: true flowchart: useMaxWidth: false htmlLabels: true在markdown中,像写代码块一样写图表二、示例以下示例源码可以在这边查看本文源码更多示例可以查看官网:https://mermaidjs.github.io1. flowchartgraph TD; A-->B; A-->C; B-->D; C-->D;graph TB c1-->a2 subgraph one a1-->a2 end ...继续阅读 (189)


    love 0
    叶落阁
    发表于
    2023-12-14 07:34:57

    3-hexo 添加音乐插件

    网易云音乐1. 复制网易云音乐插件代码前往网易云音乐官网,搜索一个作为背景音乐的歌曲,并进入播放页面,点击生成外链播放器设置好想要显示的样式后,复制 html 代码最好外层在加一个div,如下,可直接将上一步复制的iframe替换下方里面的iframe2. 将插件引入到主题中将上一步加过div的代码粘贴到主题下layout/_partial/footer.ejs的最后面3. 调整位置默认给的样式是显示在右下角,可以通过调整上一步粘贴的div的style中bottom和right来调整位置。4. 自由拖动如果需要自由拖动,在刚才添加的代码后面,再添加下面代码即可,鼠标就可以在音乐控件的上边沿点击拖动以下代码是为了支持随时拖动音乐控件的位置,如没有需求,可去掉下面代码var $DOC = $(document) $('#musicMouseDrag').on('mousedown', function (e) { // 阻止文本选中 $DOC.bind("selectstart", function () { return false; }); $('#musicDragArea').css('height', '100%'); var $moveTarget = $('#musicMo ...继续阅读 (151)


    love 0
    叶落阁
    发表于
    2023-12-14 07:34:57

    3-hexo文章内toc生成

    [toc]1. 如何使用1.1 关键字只要在在文章中使用如下关键字,不区分大小写,便可以在相应位置显示目录导航,效果文章开头1.2 小标题2jlksjdflksdjflksjdflksjdflkaj;sdfjka;lskdjfla;skjdf;lajsdflkjal;sdjkf;laskjdf占位占位1.3 小标题占位占位占位2. 标题二占位占位占位2.1 小标题占位占位2.2 小标题2占位占位占位占位占位文末占位占位占位占位占位 ...继续阅读 (131)


    love 0
    叶落阁
    发表于
    2023-12-14 07:34:57

    shell速查表

    1. 变量#!/bin/bashmsg="hello world"echo $msg变量名的命名须遵循如下规则:命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。中间不能有空格,可以使用下划线(_)。不能使用标点符号。不能使用bash里的关键字(可用help命令查看保留关键字)。2. 传参#!/bin/bashecho "执行的文件名:$0";echo "第一个参数为:$1";echo "第二个参数为:$2";echo "第三个参数为:$3";脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……另外,还有几个特殊字符用来处理参数:参数说明$#传递到脚本的参数个数$*以一个单字符串显示所有向脚本传递的参数。如"$*"用「”」括起来的情况、以”$1 $2 … $n”的形式输出所有参数。$$脚本运行的当前进程ID号$!后台运行的最后一个进程的ID号$@与$*相同,但是使用时加引号,并在引号中返回每个参数。如”$@”用「”」括起来的情况、以”$1” “$2” … “$n” 的形式输出所有参数。$-显示Shell使用的当前选项,与set命令功能相同。$?显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。3. 数组```bash#!/bin/bashmy_array=(A B “C” D)echo “第一个元 ...继续阅读 (116)


    love 0
    叶落阁
    发表于
    2023-12-14 07:34:56

    [记]《知识分子的不幸》-王小波

    前言这篇文章发表于1996年第二期《东方》杂志,同样收录于《沉默的大多数》一书中。所想文章一开头就抛出了一个问题:什么是知识分子最害怕的事?想起了高晓松在晓说中提到过这个问题,晓松肯定是看过这篇文章的。王小波说:“知识分子最怕活在不理智的年代。”所谓不理智的年代,就是伽利略低头认罪,承认地球不转的年代,也是拉瓦斯上断头台的年代;是茨威格服毒自杀的年代,也是老舍跳太平湖的年代。“王小波和他的美国老师谈论了一个问题:”有信仰比无信仰要好。“,由于王小波是经历过文革的,所以王小波一开始是抵触这种思想的,尤其是课间祷告 **让王小波想起了文革中的 **早请示。但老师最终说服了他,“不管是信神,还是自珍自重,人活在世界上总得有点信念才成。就我个人而言,虽是无神论者,我也有个人操守,从不逾越。”国内的学者,只搞学术研究,不搞意识形态,这由不了自己。有朝一日它成了意识形态,你的话就是罪状。言论不自由,不理智,民族狂热,这不就是知识分子最怕的事情吗?王小波崇拜墨子:其一,他思维缜密,其二,他敢赤裸裸地谈利害。(有了他,我也敢说自己是中华民族的赤诚分子,不怕国学家说我是全盘西化了。)营造意识形态则是灭绝思想额丰饶。中国的人文知识分子,有种以天下为己任的使命感,总觉得自己该搞出些老百姓当信仰的东西。国学,这种东西实在厉害。最可怕之处就在于那个“国”字。顶着这个字,谁敢有不同意见?抢到了这个制高点,就可 ...继续阅读 (110)


    love 0
    叶落阁
    发表于
    2023-12-14 07:34:56

    人们在一本叫《活着》的书中纷纷死去

    有那么一个年代,离我们很近,它腥风血雨,连活着都是一件奢侈的事。在富贵的一生中,每次出现看似被上天眷顾的福气后(如有庆长跑第一、凤霞嫁了人并怀了孩子),读者还在替富贵开心的时候,他们却以各种方式迅速死去,最终富贵亲手埋葬了他所有的亲人。一本 12w 左右的小说,但是在没有华丽词藻的情况下,在顺畅流利的写作手法、跌宕起伏的剧情、第一人称的代入感下一口气读完了。期间多次痛哭流涕(一点儿没夸张),不得不放下书本,洗过脸后才能继续阅读。所以已经多年没写书评的我,还是忍不住为她写下书评。人是为了活着本身而活着,而不是为了活着之外的任何事物所活着。这是作者在中文序言中的一句话,在当今生活着的我,初读序言中的这句话,并无任何共鸣,甚至还行吐槽两句。随着富贵将他的”一生”娓娓道来,你就会明白在那样的时代背景下,活着已经是一件不容易的事。 所以作者在日文版序言中说到:在旁人眼中富贵的一生是苦熬的一生;可是对于富贵自己,我相信他更多地感受到了幸福。因为他相信自己的妻子是世上最好的妻子,他相信自己的子女也是世上最好的子女,还有他的女婿他的外孙,还有他的那头也叫富贵的牛,还有一起上火锅的朋友们,还有生活的点点滴滴……富贵的真是一路跌下去的一生,从”富家少爷”赌光了家产、气死了爹爹。由于母亲生病,为母亲求医路上被国民党抓壮丁,被俘虏后,放回家中。却发现母亲已死,女儿也由于生病变成了聋哑人。本想着大难之后必有 ...继续阅读 (110)


    love 0
    Carl Notes
    发表于
    2023-12-14 05:35:41

    任天堂Switch全部记录

    NS SWTICH大气层制作新的SD卡,解决部分大气层及固件问题。 原先的SD卡(128G)快全部放满游戏了,需要新的内存卡用于存放新的游戏。 有几张闲置的内存卡,可是容量最大只有64G, 无法通过直接全部复制+粘贴的办法,来启用新的小内存卡,涉及制作新的NS Switch SD卡 ...继续阅读 (156)


    love 0
    一线码农
    发表于
    2023-12-14 03:21:00

    聊一聊 .NET高级调试 内核模式堆泄露 - 一线码农

    【摘要】一:背景 1. 讲故事 前几天有位朋友找到我,说他的机器内存在不断的上涨,但在任务管理器中查不出是哪个进程吃的内存,特别奇怪,截图如下: 在我的分析旅程中都是用户态模式的内存泄漏,像上图中的异常征兆已经明确告诉你了,不是用户态程序吃的内存,那就是内核态程序吃的,比如: 某些驱动程序 操作系统 从概率阅读全文 ...继续阅读 (221)


    love 0
    obaby
    发表于
    2023-12-14 02:54:59

    白嫖

    自从闺蜜圈功能做完之后,准备开始处理苹果上架的问题,现在要解决的问题首先是苹果登录,另外一个是微信登录。为了实现微信登录,申请了微信开放平台的账号,添加 app,审核,等等各种操作,终于完成备案之后发现不认证的账号不能进行微信登录,哈哈哈。提前没研究好,结果白费了半天功夫,不支持个人验证。麻蛋,老娘裤子都脱了,啥都没有,坑爹。当然,除此之外还做了另外一件事情,给 app 重新做了下官网,原来的网站就是一个工具页面,看起来不大专业的样子,但是,要想从头弄个网站还是太费精力啊,关键是也没有产品,没有 ui,没有……啥都没有,咋办呢,不过,功夫不负有心人啊,找到这么个网站,可以直接进行拖拉拽,改改就 ok 了。https://webflow.com/?r=0可以复制模板之后直接生成页面并且提供了在线的编辑器,但是这个编辑器存在一些问题,修改的内容在某些情况下会失效,本来想着凑合的改改,但是改到后面越改越头大。转变思路,下载代码之后直接修改代码吧,免费版不能导出代码,但是可以发布页面,https://dayima.webflow.io 发布之后想着直接把页面爬取下来,就可以修改了,试了下之前一直用的 httrack 发现不行各种 502 错误,但是呢,后来找到一个网站https://saveweb2zip.com/en可以直接下载 web 打包,这就很棒啊。下载之后的代码,直接拉到 vs ...继续阅读 (40)


    love 0
    Orchestr
    发表于
    2023-12-14 02:27:50

    肉身国内通过 Global Transfer 获得 Amex US 信用卡的一次记录

    万物之源这一切事情的起因,都只是因为我想找一个稳定的途径给 OpenAI, ChatGPT 付款开始的,虽说当时已经有了 nobepay, depay, ... 等可以直接消费数字货币的虚拟卡,但是出于对国内搞这个的&# ...继续阅读 (51)


    love 0
    xiaoz
    发表于
    2023-12-14 02:14:24

    Docker Hub 国内镜像设置方法,解决Docker镜像拉取失败

    由于某些原因,Docker Hub官方仓库在国内已经无法拉取,如果是国内网络环境,可配置国内镜像使用,从而解决Docker镜像拉取失败或缓慢问题。配置Docker镜像源如果不存在/etc/docker/daemon.json这个配置文件,可以直接使用下面的命令:# 创建目录 sudo mkdir - ...继续阅读 (157)


    love 0
    张晋涛
    发表于
    2023-12-14 00:00:00

    Gateway API 将是 Kubernetes 中流量管理的未来吗?

    大家好,我是张晋涛。因为前段时间家人生病住院 & 我换了份工作。所以断更了一段时间,后续就会逐步恢复更新了。最近在 Kubernetes 生态中比较大的事情就是 KubeCon NA 2023 成功举办了,会上有很多不错的内容,也有很多重磅消息。目前会议的相关视频已经全部上传完成, 感兴趣的小伙伴可以通过https://sourl.cn/xTUCvn观看。这其中就包括了本篇文章的主角:Gateway API 发布了 v1.0 版本,正式 GA!在聊 Gateway API 能否成为 Kubernetes 中流量管理的未来这个话题前,我先来介绍一些背景。Kubernetes 中的流量管理实际上分为两个主要的部分:南北向流量东西向流量南北向流量管理在 Kubernetes 场景中的南北向流量主要指从集群外到集群内的流量,客户端想要访问部署在 Kubernetes 集群中的服务时,需要将集群内的服务暴露出来,最常用的方式就是通过 NodePort 或 LoadBalancer 类型的 Service。这两种方式相对来说都比较简单,但是如果用户有很多服务需要暴露到集群外,通过使用这些方式就会浪费很多的端口(NodePort)或者浪费很多 IP(Loadbalancer),而且由于 Service 的 API 在设计时定位相对清晰,并不包含一些 LB 或者网关的能力,比如根据域名进行代理,或 ...继续阅读 (203)


    love 0
    血衫非弧の一存
    发表于
    2023-12-14 00:00:00

    mac 命令行使用 vscode 打开当前目录

    安装命令行工具:打开 VSCode,然后按Cmd + Shift + P打开命令面板,输入 “shell command” 并选择 “Shell Command: Install ‘code’ command in PATH”。这将会在命令行中添加code命令。使用code命令打开目录:在目标目录中,运行以下命令:bashCopy code code . ...继续阅读 (158)


    love 0
    Miobowl 的书房
    发表于
    2023-12-14 00:00:00

    回顾美国大学“反犹”风波

    最近,在网上看到了很多关于MIT、哈佛和宾大校长被美国国会质询,以及宾大校长最终辞职的相关报道。本科毕业后我就没有从事政治学相关的研究,因此只能根据我浅薄的知识,以及在 TikTok 内容安全部门工作的经历来整理一下发生了什么事情,他们讨论的重点是什么,三位校长在质询中的回答存在哪些问题,以及思考一下大学中言论和社交媒体上言论之间的区别。事件背景哈马斯袭击以色列、以色列进攻加沙之后,在这三所校园内一些支持巴勒斯坦人的学生,据称在支持活动期间发表了一些涉及大屠杀(genocide)和反犹太(anti-semitism)的言论;这些大学拒绝对这些学生进行处理,认为他们没有违反校规;这激起了学校的重要捐助者中的犹太裔,以及国会内部分议员的不满,导致了一些捐助者威胁撤资,并引发了对这三位校长的国会质询;三位校长在质询中的表现(拒绝承认学生们违反了行为守则、拒绝回答一些关键问题)激起了更大不满;截至目前,宾大校长辞职,哈佛校董会表达了对校长的支持(但是校长本身的口风也发生了变化)。争论焦点我们需要看一看议员在质询中指出的所谓反犹太言论和大屠杀言论具体是什么。到目前为止,我没有看到具体的提到有学生支持将”犹太人全部杀光“或有人对特定学生进行骚扰的新闻报道,但不排除确实存在。质询中议员们也没提到这种情况。议员所指出的仇恨言论或反犹太言论是来自一些游行中的言论,例如“从河流到大海”和“Global ...继续阅读 (148)


    love 0
    不二木子
    发表于
    2023-12-14 00:00:00

    维护研发技术文档

    前言在 V2EX 上看到了一个讨论“大家认为好的交接文档和形式是什么样的?”,我在二楼写了一点看法。之后有人提到了”交接文档残缺坑的是别人,维护文档麻烦的是自己“,我想这是很多软件工程师的真实想法。鉴于过去两年时间里,推进团队的工程实践中在研发技术文档有一些收获思维转变很重要这些文档尽量不要等到交接的时候再去写,而是应该在日常工作中去完成。同时也应该把这些文档当成项目或者仓库的一部分,放在 仓库 wiki 里随着项目更新而修改。这样不管是对新人还是工作交接都更有利于。包含哪些内容以下是我们团队的一些实践: 1.新手教程。 2.架构说明。各个组件的作用,核心依赖以及非核心依赖。国内、海外,主、备等。 3.组件介绍。每个组件的核心逻辑、核心目录等介绍,可以根据重要程度详细或者简略介绍。 4.编码实践。如何搭建本地环境、分支管理策略、issue/PR 规范、代码审核规范、单元测试规范。 5.运维实践-开发篇。如何预发布、灰度、发布、重启、回滚等,以及 CI/CD 。 6.运维实践-运维篇。云服务商依赖、基础设施依赖简介。监控:业务监控、基础设施监控,报警:业务报警、其他报警。 7.测试。 如何单元测试、本地集成测试、预发布环境测试。 8.日志。日志规范、如何使用日志。 9.故障与问题。历史故障复盘、常见问题如何处理。 10.非预期。限流、降级、预案等,最小集功能。 11.账号与 lice ...继续阅读 (99)


    love 0
    不二木子
    发表于
    2023-12-14 00:00:00

    维护研发技术文档

    前言在 V2EX 上看到了一个讨论“大家认为好的交接文档和形式是什么样的?”,我在二楼写了一点看法。之后有人提到了”交接文档残缺坑的是别人,维护文档麻烦的是自己“,我想这是很多软件工程师的真实想法。鉴于过去两年时间里,推进团队的工程实践中在研发技术文档有一些收获思维转变很重要这些文档尽量不要等到交接的时候再去写,而是应该在日常工作中去完成。同时也应该把这些文档当成项目或者仓库的一部分,放在 仓库 wiki 里随着项目更新而修改。这样不管是对新人还是工作交接都更有利于。包含哪些内容以下是我们团队的一些实践: 1.新手教程。 2.架构说明。各个组件的作用,核心依赖以及非核心依赖。国内、海外,主、备等。 3.组件介绍。每个组件的核心逻辑、核心目录等介绍,可以根据重要程度详细或者简略介绍。 4.编码实践。如何搭建本地环境、分支管理策略、issue/PR 规范、代码审核规范、单元测试规范。 5.运维实践-开发篇。如何预发布、灰度、发布、重启、回滚等,以及 CI/CD 。 6.运维实践-运维篇。云服务商依赖、基础设施依赖简介。监控:业务监控、基础设施监控,报警:业务报警、其他报警。 7.测试。 如何单元测试、本地集成测试、预发布环境测试。 8.日志。日志规范、如何使用日志。 9.故障与问题。历史故障复盘、常见问题如何处理。 10.非预期。限流、降级、预案等,最小集功能。 11.账号与 lice ...继续阅读 (100)


    love 0
    kumfo
    发表于
    2023-12-13 22:45:13

    三、ESP32(rust) - 硬件控制从点灯开始

    首先来看一下硬件:由图可见,就是这么个小东西,和我的手指对比一下也没多大,想看高清大图可以网上找,我手机摄像头坏了。硬件控制最基本的就是GPIO控制,所以首先得找到GPIO引脚图,这个步骤是准没错的,以下就是GPIO引脚图:另附官方文档源地址:ESP32-DevKitC V4 入门指南备注,文档中我都是以我自己的开发板为基准的,我的板子是ESP32-DevKitC V4,有不一样的需要自行找到自己的开发板文档。首先得思考一个问题,就是,点亮LED的原理,灯要亮,那么肯定得有电流通过,如果从没有接触过开发板的,虽然也写了几年程序,一开始肯定是云里雾里的,实际上我一开始也是云里雾里的。我们搞程序开发的都知道,计算机的底层都是以01作为计算的,也就是高低电平,高电平就是1,低电平(没有电压电流)就是0。深入说的话这就是一门大学问了,这就涉及到数字电路设计以及逻辑门等相关的知识了,抛开这个不谈。对于这块ESP32开发板来说,高电平是3.3V,低电平就是0V。另外,这块开发板引脚图可见,有两个VCC输出,一个5V0一个3V3,那么,我懒得接电阻分压的情况下,不烧毁这块开发板,我就直接把LED正极接到3V3的引脚上,然后从图上找一个可以控制输出的GPIO,用于程序控制。接下来,找了个GPIO12把LED的负极接入,然后再examples下新建led.rs,并粘贴以下代码;#![no_std] ...继续阅读 (108)


    love 0
    wireless_com
    发表于
    2023-12-13 20:23:11

    《一书读懂物联网》前言

    我们对知识的认知是有规律可循的,大都是从问题开始,对问题的界定、归纳等都是为解决知识增长或进化而服务的,正如波普尔知识进化图(见图 i-1)所示的那样。科学始于问题,发现问题是科学知识增长的起点,任何新的科学知识的产生都来源于问题。一个问题(P1)的技术解决方案(TS)往往不止一个,而是有很多个,各种技术解决方案形成一个集合,在对其进行严格的实际检验、明确场景、排除错误(EE)后,才能筛选出较好的... ...继续阅读 (156)


    love 0
    Yacan Man
    发表于
    2023-12-13 20:03:00

    2023年度总结

    1. 引2023年12月08日,皖A,天气不错,冬季慵懒的午后,是时候来写今年的年终总结了。要降温了,冬天真的来啦~其实今年发生的大部分事都在「你好 2023」中叙述过了,但是作为每年的年终惯例,这个年度总结还是要来水一水的🤪。首先简单总结下今年的生活,忙碌且充实。真的是非常非常非常忙碌……「你好 2023」中采用了记流水账的方式回忆了今年前半年的生活,那么这篇年终总结就换个方式来写✍︎吧~2. 保持身体健康永远是人生中权重最高的任务2022年末,疫情放开,几乎身边所有人都感染了一遍新冠,不知道这是不是人类历史上最严重的一次疫情。疫情放开的时候,因为家里一些事情,不得不每天需要接触很多人。在那一周的时间里,我一直处于反复感染的状态,晚上睡觉吃了药,早上醒来感觉似乎是好了,但是白天一出去接触冷空气就再次发烧。就这样反反复复持续了半个月左右。在疫情之前,我一直对自己的身体特别自信,因为我几乎没有怎么吃过药。甚至一直到疫情,我都觉得凭我的身体条件很容易就可以扛过去。今年算是彻底让现实打醒了我。五一前的一波流感,我中招了,我天真的以为凭我的身体条件扛扛就过去了。结果扛了三天实在是扛不过去,🐱🐱买的奥司他韦💊救了我一命。七月份,一个周日的晚上我出去吃了烧烤,然后那晚还熬了夜,第二天早上起来就得了水痘成年版——疱疹,这个病折磨了我一个多月。九月底在家,一个晚上从县城开车回家,路上开窗吹着秋风听 ...继续阅读 (125)


    love 0
    四十九C-137
    发表于
    2023-12-13 17:29:27

    linux 内核加载驱动流程

    调试环境:内核代码版本为 linux kernel 5.4。初始化:module_init(kbase_driver_init); module_exit(kbase_driver_exit);module_init指定了当驱动模块被加载到内核时应该调用的函数。使用 insmod 命令加载模块时,内核会自动调用 kbase_driver_init 函数。module_exit这行代码指定了当驱动模块被从内核卸载时应该调用的函数。使用 rmmod 命令卸载模块时,内核会自动调用 kbase_driver_exit 函数。static struct platform_driver kbase_platform_driver = { .probe = kbase_platform_device_probe, .remove = kbase_platform_device_remove, .driver = { .name = kbase_drv_name, .owner = THIS_MODULE, .pm = &kbase;_pm_ops, .of_match_table = of_match_ptr(kbase_dt_ids), }, }; static int ...继续阅读 (125)


    love 0
    诺多
    发表于
    2023-12-13 16:30:51

    IPTVnator:一款跨平台IPTV管理器,支持客户端和NAS自部署

    IPTVnator是一款免费的IPTV 解决方案,包含自托管的Web端和多个跨平台客户端,可用于管理和播放m3u(8)。客户端支持 Windows、macOS 和 Linux;Web端支持通过 Docker 部署到服务器或 NAS 上,支持PWA协议,间接支持了iOS和Android平台。1️⃣ IPTVnator特性IPTVnator的Web端、Windows、macOS 和 Linux 客户端方面主要以下特性:📺支持M3u 和 M3u8 播放列表支持支持Xtream Code(XC) 和 Stalker Portal (STB)两大平台支持外部播放器播放,如mvp、VLC📂支持从本地或远程 URL 添加播放列表支持在应用程序启动时自动更新播放列表🔍便捷的频道搜索 功能支持电视指南(EPG)、详细信息和频道分组电视存档/追赶/时移/收藏支持基于hls.js 的 HTML 视频播放器或基于Video.js的播放器目前支持8种语言(en、ru、de、ko、es、zh、fr、it)可以为播放列表设置自定义“用户代理”标头支持“浅色”和“深色”主题2️⃣ IPTVnator功能展示下面笔者以macOS版本为例,简单演示下如何客户端连接服务端和基本配置。1、设置中文打开IPTVnator客户端,点击右上角⚙️图标,打开设置界面,在language中选择简体中文,然后点击右下角SAVE C ...继续阅读 (129)


    love 0
    Fish
    发表于
    2023-12-13 16:26:06

    装了台 STX 小主机

    最近赋闲在家,没能忍住剁手的冲动。前几天买了台华擎的 Deskmini B760 准系统,其实一开始准备装一台 N100,不知道后来怎么就改成 B760 的机器了。这几天零件陆续到货,今天安装好了。所有配件配置单如下:配置单CPU 淘宝买的散片 12500,本来准备 13400,但看网上说 Windows Server 对大小核的支持不好,所以改成了纯大核的 12500。内存是咸鱼买的 Crucial DDR4 2666 16G x 2。一开始以为是 DDR4 3200 的,装上后发现是 2666 的,还以为是主板没开 XMP,后来去咸鱼看卖家描述,的确没说是 3200 的。硬盘买了两块 Nvme SSD,抖音和京东各买了一块便宜的,现在 SSD 涨价厉害,双十二活动不给力,说好的国产拉低价格的呢?本来还以为 2.5 寸的机械盘便宜,准备装两块,发现并不便宜。那就先不装机械盘了,反正暂时还用不上。风扇只能选 50mm 以下的,华擎的客服推荐了这个,就买这个吧。机箱内部这个机箱只有不到 2L 体积,非常小巧。还好大部分工作出厂时已经完成,自己只需要安装 CPU、内存、硬盘、风扇即可。其他的都好说,比较麻烦的是风扇的安装。一开始在风扇盒子里面只看到了一条 1700 接口的支架,说明书里面又写的 1200 或 1700,我以为是通用的,结果搞错了支架,死活对不上螺丝。折腾了半天,才发现有 ...继续阅读 (137)


    love 0
    ihainan\'s Blog
    发表于
    2023-12-13 16:21:08

    NAS 未读写时的硬盘噪音问题

    家里有台装有两块 14T 氮气盘的威联通 TS-264C,硬盘炒豆子的声音可以接受,但忍不了没有读写的时候硬盘也会隔几秒就哐当一下。小小研究了一下解决办法。根据这篇帖子可以得知威联通为了确保拔掉任何一块硬盘都能进系统,威联通会给所有硬盘分区,并把硬盘的第一块分区组 RAID 1md9,用于存储固件,第四块分区组 RAID 1md13,用于存放系统配置和应用数据。以md9为例。# ihainan @ TS-264C-NAS in ~ [15:25:20]$ sudo mdadm -D /dev/md9 /dev/md9: ... Number Major Minor RaidDevice State0810active sync /dev/sda118171active sync /dev/sdb1225912active sync /dev/nvme1n1p1325973active sync /dev/nvme0n1p1 ...当 SSD 存在读写的时候,数据也会同步到两块机械盘,基本就没法让硬盘进入休眠状态。让机械硬盘能够正常休眠的思路如下:首先需要将两块机械盘移除出 RAID,同时出于安全性考虑,需要添加两个深夜执行的定时任务,分别将硬盘添加回 RAID,和等待一段时间时候,再重新将硬盘移除,具体可以参见原贴的脚本。可以使用工具hdparm ...继续阅读 (160)


    love 0
    zwwooooo
    发表于
    2023-12-13 16:13:52

    为何不再养猫,也许是这段记忆

    刚才,去还在坚持博客的博友们那里转了一下,来到 Mr.Chou 家,一篇《它“走”了》勾起儿时养猫的记忆。很小的时候记得家里养过猫,但那是大人用来防老鼠的,真正自己第一次抱回小猫来养,应该是小学6年级毕业后去广州表弟家玩时,回家时要了他家的一条刚断奶的小母猫,跟着我一路搭大巴回来,400多公里足足坐了8个小时(毕竟当年还是各种绕山国道,还没听过什么高速公路,而且真的是类似坐公交车一样的,座椅硬的很,很多人都是坐到脚浮肿)。这只小猫是比较常见的黄灰花纹的,当年还没流行给猫起名,所以一般都直接叫它“喵喵”(噗~)。我、我姐还有我妹都很喜欢喵喵,一有空就抱着,大冬天还抢着当“热水袋”用……不知道是不是抱得多,喵喵特别的温驯,也很喜欢粘人,偶尔不小心踩到它,从来不会抓、咬,只是“喵~”了一句,然后很委屈的看着你……第二年春,不知道什么时候就发现它当妈了,肚子一天一天大,终于生出4条小猫,大家都很高兴,4个小不点早早被亲戚预定了。可是有一天放学回到家,发现喵喵痛苦地叫着、呕着,我们立即觉得可能吃到中毒的老鼠了,因为听说过哺乳期间的母猫会吃非自己抓到的死老鼠,立即跑去告诉老妈,老妈去药店买了专门解毒的药,给喵喵服下,可能中毒时间太久,一直不见好转。我们心急如焚,可无能为力,因为那个年代是没有专门兽医的,只记得农村有专门阉鸡的,城里根本找不到,普通医院也不会接……只能求天保佑吧……那年代大人也没 ...继续阅读 (173)


    love 0
    菜皮 (monsterlabfkdtz@gmail.com)
    发表于
    2023-12-13 16:00:00

    从 Go channel 源码中理解发送方和接收方是如何相互阻塞等待的

    并发编程的可见性在 Go 官网上的内存模型一文中,介绍了在 Go 并发编程下数据可见性问题,可见性是并发编程中一个重要概念,指的是在哪些条件下,可以保证一个线程中读取某个变量时,可以观察到另一个线程对该变量的写入后的值,Go 语言中的 goroutine 也适用。一般来说可见性属于偏硬件和底层,因为涉及到多核 CPU 的 cache 读写和同步问题,开发者不需要关心细节,高级编程语言要么屏蔽掉了这些细节,要么会给出一些保证,承诺在确定的条件下就会得到确定的结果。Go channel 有一个特性是在一个无缓冲的 channel 上发送和接收必须等待对方准备好,才可以执行,否则会被阻塞。实际上这就是一个同步保证,那么这个同步保证是如何实现的?下面看看官方文章中是如何解释的。先 send 后 receive文中对 channel 的描述有几个原则,第一个是A send on a channel is synchronized before the completion of the corresponding receive from that channel.意思是:在一个 channel 上的发送操作应该发生在对应的接收操作完成之前。说人话就是:要先发送数据,然后才能接收数据,否则就会阻塞。这也比较符合一般的认知。并用下面一段代码举例说明,这段代码确保一定会输出 "hello, wo ...继续阅读 (121)


    love 0
    smallnest
    发表于
    2023-12-13 15:24:34

    卷起来,老程序员也得了解errors包的新变化

    Go 1.13 中errors包有了一些变化,这些变化是为了更好地支持Go的错误处理提案。Go 1.20中也增加了一个新方法,这个新方法可以代替第三方的库处理多个error,这篇文章将介绍这些变化。因为原来的Go的errors中的内容非常的简单,可能会导致大家轻视这个包,对于新的变化不是那么的关注。让我们一一介绍这些新的方法。Unwrap如果一个err实现了Unwrap函数,那么errors.Unwrap会返回这个err的unwrap方法的结果,否则返回nil。一般标准的error都没有实现Unwrap方法,比如io.EOF, 但是也有一小部分的error实现了Unwrap方法,比如os.PathError,os.LinkError、os.SyscallError、net.OpError、net.DNSConfigError等等。比如下面的代码:123fmt.Println(errors.Unwrap(io.EOF))// nil_, err := net.Dial("tcp","invalid.address:80")fmt.Println(errors.Unwrap(err))第一行因为io.EOF没有Unwrap方法,所以输出nil。net.Dial失败返回的err是*net.OpError,它实现了Unwrap方法,返回更底层的*net.DNSError,所以第二行输出为l ...继续阅读 (154)


    love 0
    阿猫阿狗
    发表于
    2023-12-13 14:47:43

    身体与灵魂

    好久没打开电脑写写博客了,最近这几个月都在运动,下班了就在家练深蹲、仰卧起坐、胳膊,室外跑步、快走。结束后就九十点了,洗个澡看看新闻刷会视频就睡觉了。感觉好单调与枯燥,不过,一个人也就无所谓了。之所以想写这篇文章,是因为前段时间在上班途中看见一幕对我 ...继续阅读 (175)

上一页 444/4404 下一页
沪ICP备19023445号-2号
友情链接