跳到主要内容

简单重置JetBrains试用

· 阅读需 3 分钟

前言

JetBrains公司的IDE十分好用,如Idea、Pycharm等。以前的各种激活方式被相继封杀,现在主要的白嫖方式是通过无限重置试用来实现的。(其实还是有永久激活的,关键词:FineAgent

那么,无限重置试用是怎么做的呢?有没有不装插件一键全部重置试用的方式呢?

原理

JetBrains的重置试用来自Jetbrains系列产品重置试用方法 | 知了,主要是需要安装IDE Eval Reset插件,插件源码:ide-eval-resetter: Reset your IDE eval information.

自JetBrains 2020版本,IDE的试用key保存在用户目录下的 AppData\Roaming\JetBrains<IDE名称>\eval 目录下,以.evaluation.key结尾。这是个非常小的文件,只有8字节,内容如下:

WiFi网络频段优化设置

· 阅读需 3 分钟

最近感觉屋里WiFi速度很慢,ping了下路由器发现延迟非常高,长达数秒,有时甚至还丢包。这样的网络环境下的上网体验可以说很糟糕,在连接内网的机器操作时,都需要卡很久才有反应。由于我离路由器比较远,还隔了墙,并且附近有很多WiFi信号,所以我接收到的WiFi信号就偏弱。为了解决网络问题,我打开了路由器的无线管理界面,发现了信道和信道频宽之类的设置,默认为自动。好奇心驱使,我简单了解了下这些设置,其实厂家默认设置的自动未必是最优设置,通过合理的设定无线参数,可以优化网络。

信道与频宽

在WLAN标准协议里,将2.4GHz频段划分出13个有交叠的信道,每个信道都有自己的中心频率;将5GHz频段分为24个信道,且每个信道都为独立信道。

wifi信道

《Java NIO系列教程》学习笔记

· 阅读需 4 分钟

Java NIO 由以下几个核心部分组成:

  • Channels
  • Buffers
  • Selectors

channel与buffer

Channel

  • FileChannel:从文件中读写数据
  • DatagramChannel:能通过UDP读写网络中的数据
  • SocketChannel:能通过TCP读写网络中的数据
  • ServerSocketChannel:可以监听新进来的TCP连接,像Web服务器那样。对每一个新进来的连接都会创建一个SocketChannel

LockSupport源码分析

· 阅读需 9 分钟

LockSupport简介

LockSupport可以控制线程的状态,从而达到线程在等待唤醒之间切换的目的,并且不用担心阻塞和唤醒操作的顺序,但要注意连续多次唤醒的效果和一次唤醒是一样的。

注意:unpark 函数可以先于 park 调用。

【LockSupport与的区别】

  • LockSupport.park和unpark不需要在同步代码块中,wait和notify是需要的。
  • LockSupport的pork和unpark是针对线程的,而wait和notify是可以是任意对象。
  • LockSupport的unpark可以让指定线程被唤醒,但是notify是随机唤醒一个,notifyAll是全部唤醒,不够灵活。

park和unpark都是调用native方法,由JVM实现:

Kafka 2.6卡住,Topic not present in metadata

· 阅读需 3 分钟

想自己耍耍Kafka,简单装好后,运行个简单的demo,结果直接卡住不动了,但使用命令行发消息是正常的。我的Kafka版本为2.6,demo代码为:

package top.jlice;

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;

import java.util.Properties;

public class MyProducer {
public static void main(String[] args) {
Properties properties = new Properties();
properties.put("bootstrap.servers", "localhost:9092");
properties.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
properties.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
KafkaProducer<String, String> producer = new KafkaProducer<>(properties);
for (int i = 0; i < 10; i++) {
producer.send(new ProducerRecord<String, String>("test", "jlice.top-" + i));
}
producer.close();
}
}