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

    love 0
    白宦成
    发表于
    2023-08-07 01:42:15

    《黑客与画家》重读书摘

    很早之前就看过《黑客与画家》,但彼时的我并不能很好的理解和了解这本书到底在讲些什么。时至今日,当我在践行独立开发者的时候,我才真正意识到为什么这本书如此值得读。推荐序 “黑客精神”过时了吗?答案是永远不会黑客精神的真谛是动手去创造性地解决问题。“解决问题”必须跟人的需求有关,需要持久地满足越来越多人的需求。“动手”需要有勇气,很务实,以行动为导向,除此以外,黑客还必须是一个积极向上的人。保罗·格雷厄姆其人其事“运营创业公司,每天都像在战斗;而为大公司工作,就像在窒息中挣扎。”保罗·格雷厄姆有一套完整的创业哲学,他的创业公式是: (1)搭建原型; (2)上线运营(别管bug); (3)收集反馈; (4)调整产品; (5)成长壮大。所有学员刚刚来到YC的时候,每人都会拿到一件白色T恤衫,上面写着“Make something people want”(制造用户需要的东西),等到他们的项目得到风险投资以后,又会收到一件黑色T恤衫,上面写着“I made something people want”(我制造了用户需要的东西)。精装版译者序 向着未来而生未来就在眼前,伸手可及。《黑客与画家》就是这次旅程的指南,为你指出通往那扇门的方向。正如格雷厄姆所说,你要做的就是“活在未来,然后造出现在还没有的部分”(Live in the future, then build what’s ...继续阅读 (125)


    love 0
    mggg\'s 博客 on mggg\'s Blog
    发表于
    2023-08-07 00:00:00

    为Nginx设置免费的HTTPS证书(使用Let\'s Encrypt)

    简介 使用HTTPS保护网站不仅可以确保数据完整性,还可以增强用户信任和搜索引擎排名。通过Let’s Encrypt,您可以轻松地为Nginx Web服务器获取免费的SSL/TLS证书。在本指南中,我们将为您介绍如何在CentOS上为Nginx服务器设置Let’s Encrypt证书。 sudo yum install epel-release sudo yum install certbot Step 2: 安装Certbot Nginx插件 为了简化获取和安装证书的过程,Certbot为Nginx提供了一个专用的插件。使用以下命令安装Certbot Nginx插件: sudo yum install -y python3-certbot-nginx Step 3: 为Nginx生成证书 现在Certbot和Nginx插件已安装,可以生成SSL/TLS证书。请在下面的命令中将yourdomain.com替换为您的域名,然后运行它: sudo certbot --nginx -d yourdomain.com warning: 请记得替换您的域名 Certbot会进行交互,引导选择适当的选项并配置证书详细信息。 Step 4: 自动Nginx配置 获得证书后,Certbot将自动修改Nginx配置以启用HTTPS访问。它将在nginx.conf文件中处理必要 ...继续阅读 (90)


    love 0
    mggg\'s 博客 on mggg\'s Blog
    发表于
    2023-08-07 00:00:00

    为Nginx设置免费的HTTPS证书(使用Let\'s Encrypt)

    简介 使用HTTPS保护网站不仅可以确保数据完整性,还可以增强用户信任和搜索引擎排名。通过Let’s Encrypt,您可以轻松地为Nginx Web服务器获取免费的SSL/TLS证书。在本指南中,我们将为您介绍如何在CentOS上为Nginx服务器设置Let’s Encrypt证书。 sudo yum install epel-release sudo yum install certbot Step 2: 安装Certbot Nginx插件 为了简化获取和安装证书的过程,Certbot为Nginx提供了一个专用的插件。使用以下命令安装Certbot Nginx插件: sudo yum install -y python3-certbot-nginx Step 3: 为Nginx生成证书 现在Certbot和Nginx插件已安装,可以生成SSL/TLS证书。请在下面的命令中将yourdomain.com替换为您的域名,然后运行它: sudo certbot --nginx -d yourdomain.com warning: 请记得替换您的域名 Certbot会进行交互,引导选择适当的选项并配置证书详细信息。 Step 4: 自动Nginx配置 获得证书后,Certbot将自动修改Nginx配置以启用HTTPS访问。它将在nginx.conf文件中处理必要 ...继续阅读 (84)


    love 0
    10k
    发表于
    2023-08-07 00:00:00

    297. Serialize and Deserialize Binary Tree

    QuestionSerialization is the process of converting a data structure or object into a sequence of bits so that it can be stored in a file or memory buffer, or transmitted across a network connection link to be reconstructed later in the same or another computer environment.Design an algorithm to serialize and deserialize a binary tree. There is no restriction on how your serialization/deserialization algorithm should work. You just need to ensure that a binary tree can be serialized to a string and this string can be deserialized to the original tree structure.Clarification:The input/output for ...继续阅读 (36)


    love 0
    1900
    发表于
    2023-08-06 22:13:54

    自省[9]

    目标💡每天摸鱼时间不超过2小时上周成绩不太理想自省我一直都在追求高效的工作状态,虽然一直都是失败告终,不过这和方法的有效性并没有关系,方法始终是方法,毕竟坚持和实践才是验证结果的最好办法。对于我现在的工作状态我觉得有必要做一个自我剖析,以此让我更加明白哪里出了问题。我其实平时工作内容还是比较繁杂的,涉及了管理、设计、采购、财务等各个方面,而且由于今年公司绩效不好,还对办公室人员做了精简,我要做的事情就更多了,但是我又是管理人员,上级只有我妈,所以即便是事情做的不好、拖延,除了自我批评,我大部分时候都不会受到很大的责备,这种状态其实非常不好,我所承受的处罚不会立刻体现,但是对我有时候又会有感受到它会对我未来收入产生很严重的影响。目前就我上个月的摸鱼统计来看,浏览器上使用了61个小时,工作ERP使用了44个小时,可以看到我大部分时间都花在了浏览器上,换言之我是个挺喜欢「网上冲浪」的人,这61个小时除了看博客,我大部分的时间都花在了逛Github上。另外VSCode上花费了12个小时,主要浪费在了修改目前在使用的主题「二〇一九」上。另外对于难度较高的事情总喜欢下意识降低它们的优先级,但是这样就导致了一些重要的事情一直被推延,它们大多数往往只在不得以、必须的情况下才会去完成,期间自然也会造就很多麻烦。目前我的工作时间为每天9点至12点,下午2点至7-8点不等,周末几乎也会去公司,每天工作时 ...继续阅读 (144)


    love 0
    wireless_com
    发表于
    2023-08-06 20:23:59

    浅析数据工程

    目前数字化转型对于市场来说并不是一个新鲜事物,从技术视角来看,尽管大模型的涌现带来人们的更多关注,但人工智能与大数据相关技术仍处于创新阶段,各行业正在寻找和探索价值场景与新兴技术融合的平衡点,希望在新兴技术的加持下能够在激烈的竞争中占据有利位置。数据,数据数据是新一代技术革命下的生产要素,掌握了生产要素与生产要素的加工方式就是掌握了数字经济下的价值密码,这已经是业界的基本共识。企业想要更好地管理数... ...继续阅读 (188)


    love 0
    Denis | 邓鸿华
    发表于
    2023-08-06 14:55:17

    WordPress 在官网创建 WordPress Remembers 页面纪念社区逝去的人

    WordPress 在官网新建一个名为 "WordPress Remembers" 的新页面纪念逝去的社区贡献者:WordPress 将此页面献给那些我们逝去的人的记忆,他们塑造了我们的项目,丰富了 WordPress 的社区,当我们回忆起他们对 WordPress 和开源软件的热情和承诺时,我们铭记他们的精神。永远铭记在心,他们的精神通过每一行代码和他们影响过的每一个用户得以延续。该页面列出了对 WordPress 项目产生持久影响的代码和社区贡献者,并链接到他们的个人资料、外部博客和纪念页面。“随着 WordPress 继续发展,我们必须面对生活的各个方面,包括死亡,”WordPress 的联合创始人 Matt Mullenweg 在推特上介绍这个页面时说。“作为一个社区,我们现在有一个纪念地方,可以纪念和尊崇那些为 WordPress 做出贡献但已不再这个世界的人。”在后续的推文中,他补充道:“总有一天,我也会出现在这个页面上。”对于一个有20多年历史的软件项目,随着贡献者年龄的增长,离世将变得越来越普遍。如果你有幸认识这些可爱的贡献者中的任何一个,参观这个纪念页面将是一种令人心碎的体验。另外如果您知道有谁没有出现在这个页面上,可以联系memorials@wordpress.org,志愿者们会将他们添加进去。©WordPress果酱/RSS 订阅/长期承接 WordPress ...继续阅读 (175)


    love 0
    今是昨非 | 技术.生活.阅读.思考
    发表于
    2023-08-06 13:57:25

    如何高效地阅读 Python 代码?

    副标题:一个重要但很少被讨论的技能 从网上看到这篇英文文章,感觉还不错,翻译了一下。Claude2 也有参与翻译😝 AI摘要 这篇文章讨论了阅读代码的重要性以及一些高效阅读代码的策略。作者指出,阅读代码需要不同于编写代码的技能,并且认为相信自己可以轻松地阅读发布的解决方案是一个常见的误解。文章提供了一个练习的代码库,并展示了一些阅读代码的策略,如忽略函数定义和简化重复的代码块。作者还强调了使用IDE(集成开发环境)来帮助快速识别和关注代码的重要性。最后,文章提到了编写可读的代码以及学习阅读其他人的代码和第三方库的重要性。 正文 阅读代码是一项重要的技能,但却不常被讨论。我认为存在这样的假设:如果你学会了相当好地编写代码,你也会自动学会有效地阅读代码。但是阅读代码需要不同于编写代码的技能,所以我不认为这是一个安全的假设。 一位读者最近询问《Python Crash Course》中练习的一个解决方案。他说他的解决方案比我发布的简单许多,并说他们很难阅读发布的解决方案。我认为这是一个很好的例子,说明有效代码阅读的策略根本不明显。在这篇文章中,我将展示我们讨论的代码,以及一些比从头到尾逐行阅读更有效的处理代码的策略。 练习内容 我们讨论的练习分两个部分。第一部分是: 彩票 制作一个包含10个数字和5个字母的列表或元组。 从中随机选择4个数字或字母,打印出匹配这4个数字或字母的任意一注彩票 ...继续阅读 (147)


    love 0
    Nicksxs
    发表于
    2023-08-06 13:17:46

    springboot 获取 web 应用中所有的接口 url

    最近有个小需求,要把我们一个 springboot 应用的 request mapping 给导出来,这么说已经是转化过了的,应该是要整理这个应用所有的接口路径,比如我有一个 api.baidu1.com ...继续阅读 (138)


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

    完美搭档 —— Steam Deck 的左触摸板与虚拟菜单

    一. 左触摸板的存在意义不少朋友应该和我一样,在 Steam Deck 首次登台亮相的时候,有被 SD 的庞大身躯,以及占据了机身原本用来放十字键和右摇杆的位置使得摇杆布局变得很诡异的两块超大触摸板给震惊到。那时候我见到的大多数评论都对这两块触摸板以及非主流的摇杆布局持相对负面评价,右触摸板尚可理解,可以用来在一些不支持手柄游戏或者桌面模式中模拟鼠标输入,而左触摸板,除了模拟十字键,似乎在大多数时候基本用不到。我刚入手 SD 的时候与大家的想法一致,但随着玩的老游戏一多,才慢慢意识到 SD 的左触摸板其实并非虚设,相反,在 SteamOS 的虚拟菜单这个大多数坛友可能听都没听说过的功能的加持下,左触摸板能创造出非常丰富的可能性。先简单通过一个类比,让大家理解虚拟菜单究竟是什么个玩意。大家如果用手柄玩游戏,应该或多或少有接触过转盘物品栏或者武器栏,比如下图中大表哥 2 中的武器转盘。当我们使用手柄想切换武器的时候,按下 L1/LB,转盘出现在屏幕中,右摇杆来选择想要装备的武器,松开或者点击某个按键,完成选择。而虚拟菜单我们可以理解成,Steam 允许我们自定义一个类似的功能转盘(实际上不仅仅是转盘这一种形态,后面我会做更具体的介绍),转盘中的每一项都可以绑定一个特定的指令(手柄按键、鼠标操作、键盘快捷键、系统功能、甚至是另一个转盘等等),此外,Steam 也提供了非常丰富的自定义选项 ...继续阅读 (112)


    love 0
    bigwhite
    发表于
    2023-08-06 12:24:58

    Gopher Daily改版了

    本文永久链接– https://tonybai.com/2023/08/06/gopherdaily-revamped已经记不得GopherDaily是何时创建的了,翻了一下GopherDaily项目的commit history,才发现我的这个个人项目是2019年9月创建的,最初内容组织很粗糙,但我的编辑制作的热情很高,基本能坚持每日一发,甚至节假日也不停刊:该项目的初衷就是为广大Gopher带来新鲜度较高的Go语言技术资料。项目创建以来得到了很多Gopher的支持,甚至经常收到催刊邮件/私信以及主动report订阅列表问题的情况。不过近一年多,订阅GopherDaily的Gopher可能会发现:GopherDaily已经做不到“Daily”了!究其原因还是个人精力有限,每刊编辑都要花费很多时间。但个人又不想暂停该项目,怎么办呢?近段时间我就在着手思考提升GopherDaily制作效率的问题。一个可行的方案就是“半自动化”!在这次从“纯人工”到“半自动化”的过程中,顺便对GopherDaily做了一次“改版”。在这篇文章中,我就来说说结合大语言模型和Go技术栈实现GopherDaily制作的“半自动化”以及GopherDaily“改版”的历程。1. “半自动化”的制作流程当前的GopherDaily每刊的制作过程十分费时费力,下面是图示的制作过程:这里面所有步骤都是人 ...继续阅读 (298)


    love 0
    小泽
    发表于
    2023-08-06 11:33:13

    DNS+HTTPDNS 实现 CNAME 展平 (CNAME Flattening)

    本文将介绍如何使用 DNS (DNSPod) +HTTPDNS 实现 CNAME 展平 (CNAME Flattening)。一直以来,由于 CNAME 记录和任何记录冲突的独有特性,导致一旦在根域使用 CNAME 解析,将导致其他记录无法正常使用,影响 DS (DNSSEC)、MX (邮箱服务)、TXT (SPF、DKIM、DMARC、站长平台验证) 等记录的使用,进而影响依赖这些记录的相关服务(如括号内所示),而 CNAME 展平 (CNAME Flattening) 是解决这个问题的一种方法,但由于 DNSPod 本身不支持 CNAME 展平 (CNAME Flattening),所以本文将介绍如何使用 DNS+HTTPDNS 通过 API 调用的方式实现 CNAME 展平 (CNAME Flattening)。为确保能精准稳定的获取到 CDN 等厂商提供的 CNAME 记录所对应的解析 IP(调度结果),脚本需要使用 HTTPDNS 服务,HTTPDNS 服务可能产生对应的请求次数费用,具体费用请参考HTTPDNS 计费说明。前提条件域名解析托管在 DNSPod 且使用的套餐版本不低于「企业版」已开通 HTTPDNS 服务限制说明本脚本默认仅支持国内 31 个省份的三大运营商线路,其他二级运营商、教育网、中国港澳台、境外等默认调度至上海电信线路兜底,如您需要更加完整的覆盖, ...继续阅读 (153)


    love 0
    eryar
    发表于
    2023-08-06 10:53:00

    性能提升-空间二叉查找树

    性能提升-空间二叉查找树eryar@163.comAbstract. OpenCASCADE provides NCollection_UBTree to achieve high performance search overlapped boxes. The algorithm of unbalanced binary tree of overlapped bounding boxes. Once the tree of boxes of geometric objects is constructed, the algorithm is capable of fast geometric selection of objects. The tree can be easily updated by adding to it a new object with bounding box. The time of adding to the tree of one object is O(log(N)), where N is the total number of objects, so the time of building a tree of N objects is O(N(log(N)). The search time of one object is ...继续阅读 (141)


    love 0
    白宦成
    发表于
    2023-08-06 01:35:23

    《知晓我姓名》书摘

    Some Notes这本书读的很艰难,几次都读不下去,放下不看,但过了一会,重新捡起来继续读。值得一读。书摘这种犯罪的独特之处在于,行凶者可以暗示受害者体验到了快乐,而人们却连眼睛都不会眨一下。世界上不存在好的刺杀或坏的刺杀,两相情愿的谋杀或非两相情愿的谋杀。但在这种犯罪中,痛苦可以被伪装和混淆为快乐。我去过医院,那是人们的身体生病或受伤时去的地方。但我还是拉下袖子盖住瘀伤,因为我害怕自己不能像一个受伤的人那样得到同样的安慰。什么时候进行全面预防和管理成了我们的工作?如果有很多年轻女孩在一些房子里受伤,我们是不是应该让房子里的男人有更高的标准,而非训斥这些女孩?为什么人们觉得晕倒比用手指侵犯晕倒的人的行为更应该受到谴责呢?相信有无瑕的过去或完美受害者这种事。然而,现在我觉得自己被一种不可思议的纯洁标准所高举着,担心达不到这个标准就会成为布罗克强奸我的理由。他的律师会简化和概括我的经历,并给我贴上错误的标签。我答应他不会在黑暗中独自行走。但即使坐来福车,我也从来没有填写过我的真实地址,司机永远不会知道我住在哪里。安全总是一种幻觉。当我听她说话时,我明白了:你必须坚持下去,看看你的生活如何展开,因为它很可能会超出你的想象。这不是一个你是否能活下来的问题,而是在你活下来以后,等待你的是什么美好的东西。审判是对真相的探索。现在,真相并不总是放在一个漂亮的包裹里,上面扎个蝴蝶结。有时候,他们 ...继续阅读 (126)


    love 0
    Winson
    发表于
    2023-08-06 00:54:52

    How to integrate HTML template into an Angular project

    1. IntroductionThat will be easy if we just want to simple to integrate the HTML layout into Angular, just create the header,center and footer component and put the corresponding HTML to each component will be ok, but, I don’t like it, because I think the well design structure is very important for a project, in my concept, I think there are at least two part layouts for a complete website, one is frontend for presentation and the other is backend for admin management. So we should need to support two difference layouts in this situation.By the way, for this article, I just want to demo ...继续阅读 (194)


    love 0
    Yiran\'s Blog
    发表于
    2023-08-06 00:00:00

    Weekly Issue 2023-08-06

    文章 链接到标题 技术 链接到标题 不需要封装的 Overlay 容器网络 | Oilbeater 的自习室 外层的 IP 和 Mac 作为真实通信的标识是不可能省略的,但是 IP 的 Header 中有一部分字段比如 DSCP 和 ID 是很少被使用的。如果能将这两个字段利用起来,编码内层的信息,那么我们就可以不用内层的容器 IP 和 Mac 这一层了。这里可以想象一下用 iptables 来做 nat 其实是将源 IP 和端口映射成目标 IP 和端口,也可以理解为一种编码的映射关系。 作者在内核中通过 eBPF 的 Map 缓存了容器网络的 Mac 和 IP 信息,并生成了一个 key 来对应每一组 IP 和 Mac。这样,当容器再进行跨主机网络通信时,可以直接将目标地址修改为对应宿主机的地址,同时将这个 key 写入 IP 中的指定的保留字段。等数据包到达对端后,对端就可以通过这个 key 查询本地的缓存将数据包的地址再还原为容器的地址。这样并不需要额外的封装,通过 IP 和 Mac 头的直接替换,就完成了跨主机的 Overlay 网络。 生活 链接到标题 湾区与独立开发 - laike9m’s blog “半躺半卷”、“卷”和“躺”是截然不同的生活方式,没有高下之分。但如果我们继续挖掘,会发现核心矛盾还是那两个字:独立。 北京7.30暴雨 K1178被困72小时 ...继续阅读 (169)


    love 0
    10k
    发表于
    2023-08-06 00:00:00

    230. Kth Smallest Element in a BST

    QuestionGiven therootof a binary search tree, and an integerk, returnthekthsmallest value (1-indexed) of all the values of the nodes in the tree.Constraints:The number of nodes in the tree isn.1 <= k <= n <= 1040 <= Node.val <= 104AlgorithmThis question is much similar to the question of BST iterator but a little bit easier. We only need to record the index of current number and pop the right one when the index == k, no matter you are using recursive or iterative way.Code/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* ...继续阅读 (35)


    love 0
    Johon
    发表于
    2023-08-06 00:00:00

    JavaScript - 异步操作和异步传染性

    #### 前言 `JavaScript` 作为一门 `单线程语言` ,同一时间只能执行一个操作。这就意味着,在处理一些耗时操作时,程序会出现 `阻塞` ,导致 UI 无响应。为了避免这种情况, `异步编程` 变得至关重要。 `异步操作` 可以将耗时的任务交给浏览器或运行时环境来处理,同时保持 UI 的响应性。 #### 回调函数 `回调函数` 是处理异步操作的最早方法之一。它在处理事件、定时器、网络请求等方面得到了广泛应用。然而,随着异步操作嵌套层次的增加, `回调地狱(Callback Hell)` 成为了一个普遍存在的问题,降低了代码的 `可读性` 和 `可维护性` 。 ```javascript title="使用回调函数处理异步操作" function fetchData(url, callback) { fetch(url) .then((response) => response.json()) .then((data) => callback(data)) .catch((error) => console.error(error)) } fetchData('https://api.github.com/users/jiohon', function (data) { console.log(data) }) ``` ## ...继续阅读 (33)


    love 0

    发表于
    2023-08-06 00:00:00

    JavaScript - 异步操作和异步传染性

    前言JavaScript作为一门单线程语言,同一时间只能执行一个操作。这就意味着,在处理一些耗时操作时,程序会出现阻塞,导致 UI 无响应。为了避免这种情况,异步编程变得至关重要。异步操作可以将耗时的任务交给浏览器或运行时环境来处理,同时保持 UI 的响应性。回调函数回调函数是处理异步操作的最早方法之一。它在处理事件、定时器、网络请求等方面得到了广泛应用。然而,随着异步操作嵌套层次的增加,回调地狱(Callback Hell)成为了一个普遍存在的问题,降低了代码的可读性和可维护性。function fetchData(url, callback) { fetch(url) .then((response) => response.json()) .then((data) => callback(data)) .catch((error) => console.error(error)) } fetchData('https://api.github.com/users/jiohon', function (data) { console.log(data) })Promise 和异步操作链为了解决回调地狱问题,ES6引入了Promise,它提供了一种更优雅的处理异步操作的方式。Promise允许我们将异步操作组合成链式调用,通过.then()来处理 ...继续阅读 (29)


    love 0

    发表于
    2023-08-06 00:00:00

    JavaScript - 异步操作和异步传染性

    前言JavaScript作为一门单线程语言,同一时间只能执行一个操作。这就意味着,在处理一些耗时操作时,程序会出现阻塞,导致 UI 无响应。为了避免这种情况,异步编程变得至关重要。异步操作可以将耗时的任务交给浏览器或运行时环境来处理,同时保持 UI 的响应性。回调函数回调函数是处理异步操作的最早方法之一。它在处理事件、定时器、网络请求等方面得到了广泛应用。然而,随着异步操作嵌套层次的增加,回调地狱(Callback Hell)成为了一个普遍存在的问题,降低了代码的可读性和可维护性。function fetchData(url, callback) { fetch(url) .then((response) => response.json()) .then((data) => callback(data)) .catch((error) => console.error(error)) } fetchData('https://api.github.com/users/jiohon', function (data) { console.log(data) })Promise 和异步操作链为了解决回调地狱问题,ES6引入了Promise,它提供了一种更优雅的处理异步操作的方式。Promise允许我们将异步操作组合成链式调用,通过.then()来处理 ...继续阅读 (27)


    love 0
    WuSiYu
    发表于
    2023-08-05 20:49:07

    备忘:OpenWrt在旁路由下Ping通但TCP不通的解决办法

    这里的背景是OpenWRT作为旁路由(aka. 旁路网关,单臂路由,透明网关等),没有一个太准确的叫法,具体的指另一台“主路由”连接公网并作NAT,OpenWrt不启用NAT,用户设备的上行流量先经过OpenWrt旁路由转发到“主路由”,下行时流量直接通过由主路由发送到用户设备,不经过OpenWrt旁路由。主要优点在于下行带宽不会受OpenWrt性能的影响,且OpenWrt设备故障或维护时,可手动(或配置自动)切换到主路由。(OpenWRT旁路由可以是单臂路由,也可以有另一根独立的线路连接到主路由,避免带宽限制,如我之前的文章)但由于上行和下行的通路不同,仅有部分流量会经过OpenWrt,会导致TCP的conntrack出现问题。具体表现是:已经正确设置了路由,且能用户设备能ping通外网,但对外进行TCP不通,若在用户设备上抓包分析会看到:(从用户设备,客户端)发送SYN收到(来自公网设备,服务器)SYN + ACK发送ACK发送通信内容(payload)(未收到回应ACK)重复收到SYN + ACK(多次)(重传)发送通信内容(payload)(还是没有回应ACK)不难看出,这是由于客户端发送的ACK在中途被丢弃了,使得虽然客户端认为TCP连接已经建立,但在服务端看来没有,因此客户端发送的payload不会被确认,而服务器则会重传SYN + ACK,继续等待客户端的ACK。这种 ...继续阅读 (114)


    love 0
    二两生抽
    发表于
    2023-08-05 19:27:53

    让我来拯救你。。。的鼠标滚轮

    场景在写Vue SFC的时候,往往需要频繁地在template和script之间切换。想象一个场景, 我们开心地在中写下了,哦豁,这个时候想起handleButtonClick还没有定义,立马滚到script块内,写下function handleButtonClick() {}, 再滚回template代码块,接着写 button的样式,定义一个class,又该干啥了?滚到style去吧。滚动的过程中,如果文件比较长,速度和精准度都不高,一路前前后后,走走停停,一言难尽。这是不是你的日常? 所以就有了V Jump这个插件。 支持快速在跳转到Vue的这三个模块的起始位置,并且插件还记录了每一个模块中的光标位置,支持跳转回每个模块中记录的光标位置,方便在写了事件handler之后,立即跳转回到中元素定义的场景。源代码地址是vscode-v-jump,觉得有用的话,点个 Star 吧。功能插件支持两种代码块的快捷跳转方式直接跳转到代码块起始位置:Jump to template: 跳转到代码块开始位置Jump to script: 跳转到代码块开始位置Jump to style: 跳转到