搭建了自己的 RSS 服务
先来简单说一下什么是 RSS 吧,RSS 全称叫做 Really Simple Syndication,中文叫做简易信息聚合,也叫聚合内容,它是一种消息来源格式规范,用以聚合多个网站更新的内容并自动通知网站订阅者。使用 RSS 后,网站订阅者便无需手动查看网站是否有新的内容,同时 RSS 可将多个网站更新的内容进行整合,以摘要的形式呈现,有助于订阅者快速获取重要信息,并选择性地点阅查看。说的简单点就是它可以把各种信息源整合起来,我只需要在一个 RSS 服务里面就可以获取到来自各种不同渠道的订阅更新,现在我们看到个很多技术博客和网站都提供了 RSS 订阅链接,细心的话你应该在很多地方就见过这个东西。 说来奇怪,RSS 本应是上个时代的产物,近些年缺被越来越多的人追捧,在目前这个信息爆炸的时代,各种信息流充满着我们的屏幕,不同的信息平台也有着不同的推送方式,导致信息获取破碎,无法筛选自己真正感兴趣的信息。如果你跟我有差不多同样的想法,那么,搭建一个自己的 RSS...
聊聊 Java21 新特性
背景2023 年 09 年 20 日,Java21 正式发布,这是最新的 LTS 版本,官方预计会对此版本提供至少 8 年的维护。这一次 JDK 的升级是否会引起 Java8 项目升级暂不清楚,但是此版本带来了诸如虚拟线程等重量级功能更新,可能会导致 Java21 版本将会成为未来几年最经典的 JDK 版本,就像曾经的 Java8 一样。 新功能介绍此次 Java21 版本一共带来了 15 个新功能更新,具体可以见官方的发布页面,一眼望去,其中最重磅的更新摸过于 JEP444,也就是我们所说的虚拟线程,一般我们在其他语言(比如 golang)里面叫做协程。除此之外,还有诸如分代 ZGC、Switch 模式匹配等实用功能的更新,以下是 Java21 版本所有的新功能: 提案 标题 说明 JEP430 String Templates (Preview) 字符串模版。Java 语言现有字符串文本和文本块增加功能,其他常用语言均已提供相应的功能用法 JEP431 Sequenced Collections 序列集合。该 JEP...
换工作了
经过两个多月断断续续的面试,工作终于是在 6 月份敲定了,不管结果如何,好在终于做出了选择,综合考虑,选择了一家了还算不错的公司,正式开启了职业生涯的第二阶段。其实这篇文章 6 月份就应该写的,之所以拖到现在一方面是刚去新环境需要一个时间过渡,另外一方面则是一直没制定好下一个阶段的计划。 按照习惯,先总结一下过去两个多月吧,找工作是一个及其痛苦的过程,两个多月的时间里,我要随时保持面试状态,学习也是以八股和面试为主,面试本身也极大的消耗了我的精力。我清楚的记得,过去两个月经常失眠,夜晚思绪乱飞,常常因为理想和现实差距过大而焦虑,要达到理想中的目标还需要付出太多。上周有天晚上跟妹子聊到这个问题,她跟我说到每个有成就的人可能都会经历从基础的物质享受到实现自身价值的阶段,这其中伴随着理想的实现,对普通人来说,美好的事物往往都是从煎熬中获得的。老实说,在现在这样的环境下我不一定完全认同这些观点,但是我觉得为什么不再坚持一下呢?就是这样伴随着焦虑和自我怀疑结束了毕业以来的第一次社招,我成功换了一家公司工作。可能对其他人来说,这不是一个多么好的...
详解 SSH
概述SSH 全称 The Secure Shell protocol,它是应用层上的一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境,它是通过在网络中创建安全隧道来实现 SSH 客户端与服务器端之间的连接。SSH 协议最常见的用途是远程登录系统,人们通常使用 SSH 来传输命令行界面和远程执行命令,因此可以说它是我们使用最频繁的网络协议之一。 在设计上,SSH 是 telnet 和非安全 shell 的替代品,Telnet 和 Berkeley rlogin、rsh、rexec 等协议采用明文传输,使用不可靠的密码,容易遭到监听、嗅探和中间人攻击。SSH 旨在保证非安全网络环境(例如互联网)中信息加密完整可靠。 定义SSH 协议先后定义在多个RFC文档中,以下列出了 SSH 协议相关的一些重要的 RFC。 RFC 介绍 时间 RFC 4250 协议号码 2006 年 01 月 RFC 4251 协议架构 2006 年 01 月 RFC 4252 身份验证 2006 年 01 月 RFC 4253 SSH 传输层协议 2006 年...
流量控制(一):从限流算法说起
前言关于这篇文章起因,最近计划看一下《Effective Java》,然后我了解到此书的作者同样也是 Google Guava 库的作者,作为一个练习2年的 Java 的程序员,还没有研究过 Guava,属实有点说不过去,借此机会研究了一下 Google Guava。 先简单说一下 Google Guava 库,它不仅仅是 JDK 的升级库,诸如包含集合(collections)、缓存(caching)、并发库(concurrency libraries)、原生类型支持(primitives support)、字符串处理(string processing)、I/O 库等,还是《Effective Java》这本书中那些优秀经验的实践代表,两者应该结合起来阅读学习。在 Guava 中有两个实现我很感兴趣,一个是它实现的 Bloom Filter(布隆过滤器),另外一个就是本篇文章即将介绍的...
技术人员如何提高
...
Reactor模型
前言C10K 问题C10K 问题是由Dan Kegel在1999年提出的。C代表并发连接,指的是在一个单机网络服务器能够同时1万个并发请求。在过去很长一段时间,这个目标一度是很难实现的,所以也就产生了C10K的问题,但是随着网络技术的发展,C10早已经被解决,现如今已经不再是一个具有挑战性的问题了。 上面提到的C10K问题,是在32位Linux2.2内核的机器上遇到的问题,在当时由于机器的内存、网卡和网络带宽等硬件的限制,人们发现很难突破这个问题。随着电子工业的发展,根据摩尔定律,计算机的处理能力,每隔一段时间都会翻倍, 计算机的处理能力已经渐渐不再是瓶颈。与此同时,随着网络技术的发展,网络连接的IO模型和架构模式也在不断的发展,在现如今分布式集群的环境下,当时的问题虽然早已经不复存在,但是弄清楚背后的原理,能够帮助我们写出高性能的程序。 IO 模型的演进随着操作系统内核的发展,推动软件技术的进步,结合编程语言的支持,诞生了许多种不同的IO模型,大致概括为一下五类: 阻塞式...
全新博客站点
记得上大学时,我就有记录知识,整理技术的习惯。 一开始,我接触的是有道云笔记,为了方便同步和实时查看,我起初把我所有相关的资料存放在有道云笔记,那个时候存放的文章和资料主要是入门为主,大多都是我在网上摘抄收集而来,一般是我在网上看到了一个我不知道又觉得有用的知识,便会将其存入有道云,我会对这些资料分门别类,以便我后面能方便的查看,我以为我后面会看,事实是后面再也没有看过,下图就是我当时我建立的各种文件夹。 再后来毕业开始工作,一次偶然的机会接触到了 notion,一下子就被它的设计所吸引,笔记记录原来还可以做成这样,notion 里面有很多现成的组件可以使用,我可以做出各种炫酷的笔记样式,当然它是有一定的上手门槛的。毕业后的前两年,我就一直在 notion 上记录我的工作和生活,我建立了两个 workspace,一个是学习空间,一个是生活空间。在学习空间,我会建立各种不同类型的 Gallery,用来区分不同的技术领域,并且给每一个 Gallery 单独设置好看的封面;在生活空间,我会建立自己的 calendar,给自己每天安排各种计划(虽然大部分都没有完成过),还会利用...