Kymotz's Blog

随笔|治疗犯困

治疗犯困

长时间坐在家里容易犯困,似乎看几十分钟视频就要打哈欠,我想了个办法,去超市买点吃的,酸些的零食,乌梅、蓝莓之类的,在不在状态时就吃点,像喝了脉动似的,虽然不太清楚喝脉动对我提神的效果,但是我知道我爱吃酸的,伴随着味蕾的刺激,精神又从八千里外拉扯回来了。

昨天买的热水壶今天到了,准备尝试一下花茶,我在朋友圈发了一个说说让大家给我推荐写花茶,多数人给我推荐枸杞,哈,虽然这是个好东西貌似我还不需要,还有些推荐的不错的我准备尝试一下,今天在买了大朵的贡菊尝试一下还不错。

老弟的弱点

我在家里的小群里发了个消息,我爸立刻在群里发了语音,谈我弟的校招,我跟他说明后我弟就从潜水状态出来了,他说在看设计模式准备投递简历,我听到这里就没有太多担忧了,老爸继续道:“要多听听你哥的,向他请教请教,别太拗你的脾气”,之后老弟服服帖帖的连连答应,我一听乐了,看来还是老爸的话管用。下午我跟老弟视频通话,详细了解了他近期的情况并给他一些建议。

浏览器父子窗口通讯之 postMessage

在浏览器中,postMessage() 函数是用来实现安全跨网站通讯,可以是另一个浏览器的 tab 或者嵌入页面的 iframe。这个接口可以让浏览器的页面协作起来,实现更丰富的功能,例如我们准备开发一个可能重用的页面组件,便可以将页面通过 iframe 嵌入然后通过 postMessage() 进行通讯。

Linux|生成 SSH 密钥登陆教程

使用非对称密钥登陆 Linux

1、使用 ssh-keygen 生成公私钥

2、服务器(Linux)端 ~/.ssh/authorized_keys 文件存放公钥,保证 SSH 服务开启,默认端口 22。

3、自己保存私钥,登陆时使用 ssh 命令

命令和参数解释

 1# 生成密钥
 2ssh-keygen -t rsa -b 4096 -f ~/data/key/id_test_rsa -C "xxxxxx@163.com"
 3
 4-t 密钥类型, dsa | ecdsa | ed25519 | rsa
 5-b RSA类型密钥的大小(长度),通常至少应该是 2048,默认 3096
 6-f 指定私钥的文件名,e.g. ~/.ssh/private_key_name
 7-C 指定一个注释
 8
 9# 登录
10ssh user@host/ip[:port] -i [identity_file]
11
12e.g. root@106.14.23.168 -i ~/.ssh/id_rsa
13
14-i identity_file 指定私钥文件
15
16# 将公钥放到 .ssh/authorized_keys 文件中
17echo id_rsa.pub >> authorized_keys

Spring|Bean的初始化、作用域

BeanDefaintion 保存 Bean 的元信息,是 Bean 的“配料表”。

Bean 初始化的方式:

1、通过构造器除时候( 不可变对象)

 1public class SimpleMovieLister {
 2
 3    // the SimpleMovieLister has a dependency on a MovieFinder
 4    private MovieFinder movieFinder;
 5
 6    // a constructor so that the Spring container can inject a MovieFinder
 7    public SimpleMovieLister(MovieFinder movieFinder) {
 8        this.movieFinder = movieFinder;
 9    }
10
11    // business logic that actually uses the injected MovieFinder is omitted...
12}

在学长的公司做面试官的问题

我返校后就去了学长的公司,在学习期间也帮忙招一些有经验有能力的软件开发人员。我主要负责后端的面试,期间参与制定了面试的标准,出了一些公司面试问题。我们面试的人有一两年工作经验的,有实习生,还有一些刚才培训机构培训完的,也许有些人会奇怪 “怎么还面试从培训机构出来的?“,因为公司小且地理又处在三线城市,资源和吸引力不能和一线大厂比。

我们的面试流程简单,主要有以下内容:

教程|Windows 安装 Nodejs

  • 系统 Win 10 64 位
  • Node 版本 16.15.0 LTS

如果是在 Linux 安装 Nodejs,参见我之前写的文章 《Linux 安装 Nodejs 教程》

Windows 安装过程如下。

操作系统环境变量原理

环境变量一般指的是操作系统中一些可以变的参数,在 Linux 系统中,环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的家目录(HOME)、邮件存放位置(MAIL)等。在学 Java 时,安装 JDK 后总要配置环境变量,目的是告诉操作系统我们输入命令后到底要从哪里寻找命令,因为操作系统默认只会在当前目录搜索。

由环境变量我想到了项目启动的配置,例如 Spring 中的 xml、properties、yml 类型的文件,或者使用在启动时通过配置中心(e.g. nacos、zookeeper 作配置存储的中间件),这些在项目启动后的配置都不能变更,这样导致的是修改配置必须重启项目。

我们毕业了

三月软件14期合照
三月软件14期合照

依稀记得 18 年夏秋之交,我怀着激动的心情进入大学,燥热的空气为新生渲染着氛围,校园内都在表达着对新生的欢迎,那时的我们充满着对未来的向往,现在我们毕业,穿上了学士服。

我的大学过的算充实,周末、寒暑假我都在实验室中度过的。在实验室里比较自由,有许多时间学习感兴趣的计算机知识,我大学掌握的知识多来自于此,因此我也真正意识到,只有主动学习把兴趣投入进去才能学到真知识。

在别人眼中我是自律的人,但在我看来,我应该是目标比较明确,我的活动都是以目标为导向的,有时候不想做什么事一想起目标就有动力了,我非常庆幸我在大学四年中有清晰的目标。

未来仍有许多故事,我会继续在这条“马拉松”路上。

SOFA-Bolt通信模型介绍

SOFA-bolt 是蚂蚁金服开源的一个分布式 RPC 框架,用于快速构建金融级云原生架构的中间件,也是在金融场景里锤炼出来的最佳实践。SOFA-bolt 有四种网络通讯模型:分别是 oneway、sync、future、callback,本文主要介绍这四通信模型。

通信模型

  • oneway:不关注结果,即客户端发起调用后不关注服务端返回的结果,适用于发起调用的一方不需要拿到请求的处理结果,或者说请求或处理结果可以丢失的场景;
  • sync:同步调用,调用线程会被阻塞,直到拿到响应结果或者超时,它是最常用的方式,适用于发起调用方需要同步等待响应的场景;
  • future:异步调用,调用线程不会被阻塞,通过 future 获取调用结果时才会被阻塞,适用于需要并发调用的场景,比如某个客户端调用多个服务端并等待所有结果返回后执行特定逻辑的场景;
  • callback:异步调用,调用线程不会被阻塞,调用结果在 callback 线程中被处理,适用于高并发要求的场景;

MQTT 协议是什么

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于 TCP/IP 协议上,由 IBM 在 1999 年发布。MQTT 最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

MQTT 是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT 协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。

资料