• zahui
    年轻人是比较容易语速快的。因为年轻人的内心节律就是快的,年轻人的新陈代谢也是快的。如果有机会的话,去听一下几岁的小朋友的心跳,你会发现他的心跳速度非常快。所以,如果想要在年轻的时候就把语速控制住,就需要刻意的去练习。语速不在于频率...
  • zahui
    更换cusdis为twikoo之前一直用的cusdis评论系统,之前的文章中也提到过。博客添加文章评论系统cusdiscusdis博客评论系统开始收费虽然cusdis收费之后,使用免费版对于小博主没有什么大的影响。但是评论被自动折叠,...
  • zahui
    书接上文:追求女孩子,是主动一点好,还是被动一点好。一个人气场的根源来自于哪里?人类,都是慕强的动物,尤其是女人,她一定要找到一个强者来跟她结盟。所以那些雌性动物,会选择犄角比较大的,打架比较狠的,她一定不会选择一个比他还弱的来结盟。...
  • cooklv
    致敬我们的赛博大善人Cloudflare Cloudflare Tunnels可以提供什么 1、内网穿透 2、https证书 3、服务转发(简易版Nginx) 4、以上免费 背景 家里网络只有ipv6 ,并且80 443等端口被运营商禁用。所以想要暴露内网的服务到公网,只能使用ipv6+非标端口访问
  • moatkon
    摘录分享
  • zahui
    如上一篇文章我们一起讨论了:气场强大的其中一个特质:被动。讲完被动这个特点呢,我们下面再讲一个词,他也是拥有强大气场的人的一个外显特征,就是慢。气场强大的第一种“慢”:反应慢这个慢一方面表现是反应慢。通过前文的几个案例,我们就能看出来...
  • zahui
    本次内容摘要(摘要由AI生成):内容讨论了气场强大的人在社交中的被动特质,指出被动并非行动上的消极,而是一种保持独立性和控制力的表现。文中通过培训讲师、领导和下属的互动、以及相亲场景中的例子,说明了主动与被动对个人气场的影响,强调了适...
  • moatkon
    数据迁移最佳实践
  • kingname
    今年315晚会曝光了几个获客软件,号称可以拦截任何人的网络浏览记录,并根据对方在直播软件的留言、打过的电话、浏览过的网址,获取对方的手机号和微信号。还有在地图上随便画一个圈,就能找到圈里面130万人的联系方式。作为一个软件工程师,我来说说我对他们背后原理的猜测。晚会里面笼统的说到他们使用了爬虫技术。其实这种说法并不准确。爬虫做不到这种程度。爬虫只能爬取到人眼能看到的各种公开数据。例如有人在直播软件下面回复了评论,爬虫能爬到评论人的用户昵称、评论的内容。但是因为评论人的真名、手机号码和微信号并没有显示在直播软件上,所以爬虫是不能爬到的。它后续还需要使用撞库、社工库、社会工程学等等一系列操作,才能定位到用户的手机号。以它直播软件获客这个例子,我觉得它背后的原理是这样的:获客公司有大量的爬虫,他会在各种社交网站上面爬取每个人公开的信息。例如微博、小红书、某些论坛等等。然后把这些信息储存在数据库中。也会记录他们的发帖、回帖。收集各种社工库泄露出来的信息,也储存在数据库中。这些社工库里面可能包含了某些著名的社交网站。根据用户需求,在某个特定的直播中,抓到其他用户的评论,发现这个评论显示用户对直播…
  • tink1
    Hammerspoon 是一个 macOS 上的自动化脚本工具,它将 macOS 系统的底层操作封装成了一堆接口,而且原生支持 lua 脚本,通过编码能实现很多牛逼/好玩的功能。下面是几个我目前...
  • cornradio
    最近进入新公司工作后,使用的是macos笔记本办公,积累了很多的小技巧 可以帮助高效的使用macos 快捷键 https://support.apple.com/zh-cn/102650 finder 按住 Option-Command 键拖移:为拖移的项目制作替身。 cmd + J 设置目录展示,可以按照不同的方式来分组和排序。 Command + Shift + . 显示隐藏文件 文本 ctrl + D 、fn + 退格, 删除右边 相当于 win del cmd + shift + 方向 快速选中一行。 任务栏缩放加速 https://www.sqlsec.com/2023/07/ventura.html # 设置启动坞动画时间设置为 0.5 秒 defaults write com.apple.dock autohide-time-modifier -float 0.5 && killall Dock defaults write com.apple.dock autohide-time-modifier -float 0 && killall …
  • cooklv
    Huginn 是什么? Huginn这个名字是取自北欧神话,Huginn(福金)和Muninn(雾尼)是奥丁养的两只乌鸦,它们两个每天早上一破晓就飞到人间,到了晚上再回去跟奥丁报告。它们总是栖息于奥丁的肩头同他窃窃耳语。也因此奥丁又被称为“乌鸦神”。 Huginn 可以理解为一个任务平台,你创建各种
  • zxyang3636
    谈谈你对 Spring 的理解,springmvc,springboot 之间关系? Sping Spring 框架的基本概念: Spring 是一个开源的 Java 企业应用开发框架,旨在简化 Java 开发,提高代码的可维护性和可扩展性。 它提供了控制反转(IoC)和面向切面编程(AOP)等特性,帮助解决了传统 Java 应用中的一些设计问题。 控制反转(IoC)和依赖注入(DI) IoC 是 Spring 的核心概念,控制反转 Inversion of Control:由 spring 框架创建对象,对象不由我 们创建。所有 bean(对象)交给 spring 容器管理,由 spring 创建、销毁、统一管理(不使用 new 创建),解决了对象间的耦合(解耦) DI 是 IoC 的一种具体实现,通过依赖注入,给对象定义的属性赋初值,的过程称为依赖注入 Spring AOP: 面向切面编程,通过 AOP 可以将横切关注点(如日志、事务)从主要的业务逻辑中分离出来。 SpringMVC: MVC 是 Spring 框架的一个模块,专门用于构建 Web 应用程序。Spring MVC …
  • zxyang3636
    谈谈你对Redis的理解 Redis是一个高性能的基于Key-Value结构存储的NoSQL开源数据库。大部分公司 采用Redis来实现分布式缓存,用来提高数据查询效率。 Redis为什么这么快? 决定Redis请求效率的因素主要是三个方面:分别是网络、CPU、内存。 1.运行在内存中:绝大部分请求是纯粹的内存操作,非常快速; cpu>内存>磁盘 2.redis是运行线程是单线程。采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗; 为什么采用单线程? redis运行中性能瓶颈不是cpu数(也就是多线程作用不大,是内存大小),单线程的好处可以避免多线程时的上下文切换。 如果采用多线程,对于Redis中的数据操作,都需要通过同步的方式来保证线程安全性,这反而会影响到redis的性能 3.采用多路复用I/O模式 这里“多路”指的是多个网络连接,“复用”指的是复用同一个线程 Redis 可以用来做什么 缓存 排行榜 分布式计数器 分布式锁 消息队列 分…
  • zxyang3636
    Docker Nginx nginx是什么?优势? 一个高性能的Web服务器和反向代理服务器 可以容易的做负载均衡,更好的面对高并发的场景。 Nginx应用场景 Http服务器 可以做网页静态服务器,托管 HTML、CSS、JavaScript、图片、视频等静态资源。 反向代理/负载均衡,当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。 负载均衡策略 轮询 每个请求按时间顺序逐一分配到不同的后端服务器 加权轮询 指定轮询几率,用于后端服务器性能不均的情况。(权重/加权),权重越高分配的请求越多,权重越低,请求越少。 ip_hash ip_hash 方式的负载均衡,可以使来自同一个 IP 的客户端固定访问一台 Web 服务器,从而就解决了 Session 共享问题。(己经淘汰) 正向代理?反向代理? 反向:是代理服务器端,隐藏真实服务器 正向:代理的是客户端(常见的vpn) Linux 如何查看进程 # 查看所有进程 ps -ef # 查找特…
  • zxyang3636
    MySql char 和 varchar 的区别? 在数据库中,CHAR(固定长度字符)和 VARCHAR(可变长度字符)是两种用于存储字符数据的数据类型,它们之间的主要区别在于数据存储方式和存储需求。 存储方式: CHAR: 存储固定长度的字符数据,不管实际数据的长度是多少,都会占用指定长度的存储空间。如果存储的数据长度小于定义的长度,剩余空间将用空格填充。 VARCHAR: 存储可变长度的字符数据,实际存储的空间取决于数据的长度。它只占用实际数据的存储空间加上一些额外的字节来记录数据的长度。 存储需求: CHAR: 由于它存储固定长度的数据,对于每个数据项都需要分配固定的存储空间,可能会浪费一些存储空间。适用于存储长度固定的数据,如固定长度的代码或状态。 VARCHAR: 由于它存储实际数据的长度,因此在存储可变长度的数据时更为节省空间。适用于存储长度可变的文本数据,如评论、描述等。 性能: CHAR: 由于存储固定长度,检索时可能更快,但在存储大量可变长度的数据时可能会浪费空间。 VARCHAR: 由于存储实际数据长度,可能在某些情况下对存储效率更友好,尤其是对于可变长度的数据。…
  • zxyang3636
    RabbitMQ 怎么确保消息幂等性? 方式1: 我们在生产者发送消息的时候,将生成的唯一token存储到redis中并且设置一个TTL存活时间,通过MessagePostProcessor对象将token存储在MessageId中 在监听队列的消费者端,我们从message对象中获取存在MessageId中的token,在从redis中获取这个token,判断redis中是否有MessageId中的这个token,如果有这个token并且没有被删除,那么我们就正常执行业务逻辑代码,业务逻辑代码执行后,再删除redis中的这个token,并且channel手动确认消息 需要注意的是:rabbitmq是批量处理消息,有必要加锁。 方式2 利用redis中的setnx指令,java中setIfAbent() 让消费者记住消息。结合redis 的setnx指令 消费前把消息中的唯一属性,放入redis,如果重复消费了,发现redis中若有该唯一属性,就不消费 如果消息中没有唯一属性?(联合主键:找几个属性加起来时唯一即可) 消息成为死信的三种情况 ​ 消费者拒接消费消息,并且不把消息重新放入…
  • zxyang3636
    面试指北 Java 基础 ==和equals的区别是什么? ==既可以比较基本数据类型,也可以比较引用数据类型 ==在比较基本数据类型时, 比较的是值, 在比较引用数据类型时, 比较对象的地址 equals 只能比较引用数据类型, 比较对象中的内容是否相同, 在没有重写的情况下也是比较对象的地址 String str="i" 与 String str=new String("i") 一样吗? String str="i"会将其分配到常量池中,常量池中没有重复的元素,如果常量池中存在 i,就将 i 的地址赋给变量,如果没有就创建一个再赋给变量。 字符串字面量,通常存储在 JVM 的字符串常量池中。常量池中没有重复的元素,如果字符串常量池中已经存在相同的字符串(例如,之前已经使用过 "i"),则不会创建新的对象,而是直接引用池中的现有对象。如果没有就创建一个再赋给变量。 String str=new String(“i”)会将对象分配到堆中,即使内存一样,还是会重新创建一个新的对象。 接口和抽象类有什么区别? 声明方法的存在而不去实现它的类叫抽象类。接口是抽象类的变体,接口中的所有方法都是…
  • zxyang3636
    线程池 为什么要使用线程池? 在没有使用线程池之前,是这样执行任务的 一个线程只能执行一个任务,不能连续执行任务 public class Task implements Runnable { @Override public void run() { System.out.println(Thread.currentThread().getName()); } } public class Main { public static void main(String[] args) { Task task = new Task(); Thread thread = new Thread(task); thread.start(); } } 这暴露了一个问题,线程不能复用,重复创建和销毁线程耗时耗资源,若能复用就好了,复用的好处就是省时省资源 看线程池如何执行⤵️ 创建只有一个线程的线程池,这个线程池中只有一个线程,重点是它里面的线程可以复用 public class Main { public static void main(String[] args) { Runnable tas…
  • Ray
    🎵Berry – TINY7最先出现在RaysBlog。