自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(300)
  • 资源 (3)
  • 收藏
  • 关注

原创 simpread-OpenAI推出Canvas:让ChatGPT成为更出色的项目协作者

Canvas作为OpenAI推出的新型项目协作界面,为用户提供了一个强大的工具来提升工作效率。通过与ChatGPT的深度整合,它不仅解决了写作和编程中的实际问题,还提供了灵活的实时反馈和编辑功能。尽管面临挑战,但这种全新的工作方式或许正是未来的方向。让我们拭目以待,看看Canvas如何继续演化,改变我们的工作方式。

2024-10-08 22:22:17 992

原创 如果你不愿意冒一切风险,就不要成为创业者:如何建立一个年收入 1800 万美元的支付业务

作为 VizyPay 的 CEO 兼创始人,我深知创业的艰辛和风险,也深知只有敢于冒险,才能取得成功。通过创新的 CDP 方案,我们成功地解决了乡村小商户面临的支付处理难题,帮助他们节省费用、增加盈利。创业从来不是一件轻松的事情,过程中充满了各种挑战和风险。但正是这些挑战和风险,让我们不断成长和进步。如果你不愿意冒一切风险,就不要成为创业者。但如果你愿意坚持和奋斗,相信在不久的将来,你也能像我们一样,创造出属于自己的成功故事。希望我们的案例能够给你带来启发,祝你在创业的道路上取得巨大成功!

2024-09-28 12:55:11 696

原创 轻松拥有自己的智能对话助手:一键部署gpt4free,让ChatGPT触手可及

如今,AI正逐渐走进我们的生活,而GPT-4则是目前最受欢迎的智能对话模型之一。然而,很多用户和开发者由于API费用高昂或部署复杂,对其望而却步。幸运的是,GitHub上的gpt4free项目提供了一个免费且简单的解决方案。gpt4free是一个开源项目,它允许用户通过免费或低成本的方式访问类似ChatGPT的功能。项目在GitHub上获得了超过60K的星标(stars),广受用户欢迎。无论你是普通用户还是开发者,只需要简单几步操作,你就可以拥有属于自己的智能对话助手。

2024-09-24 20:37:34 945 2

原创 网页护眼宝——全方位解析 Chrome Dark Reader 插件

亮度(Brightness):调节页面整体的亮度,适应不同的光照环境。对比度(Contrast):调节文本与背景的对比度,提供清晰的阅读体验。饱和度(Sepia):将网页调节为暖色调,减少屏幕蓝光对眼睛的伤害。这些调整确保了用户可以根据个人偏好微调深色模式的外观。在设置面板中,你可以通过滑块调整亮度、对比度和饱和度等参数,优化深色模式效果。如果某些网站不需要深色模式,用户可以通过Site List功能将其添加到白名单。

2024-09-24 20:34:56 3287

原创 创新的真相:重新定义旧问题,而不是追逐新的问题

每个创业者都曾有过这样的时刻:你盯着市场,想着怎么才能找到那个“没有人解决过的问题”,认为只要避开了竞争,成功的道路就会一片坦途。但事实真的是这样吗?也许你觉得,真正的创新就是找到那些无人涉足的领域,解决那些尚未被发现的“独特问题”。但不妨想象一下:如果一个问题真的那么“独特”,它为何还没有人解决?是不是因为它根本不值得解决,或者解决它的代价过高?这时候,你可能会想到那些耳熟能详的成功企业,像苹果、亚马逊、特斯拉等。

2024-09-17 17:19:22 1402

原创 开发者的噩梦:如何在抄袭狂潮中杀出一条血路?

作为独立开发者,抄袭是我们无法逃避的一个现实问题,但这并不意味着我们会因此失败。抄袭者虽然可以复制你的外壳,却无法复制你真正的价值、品牌和与用户的深度连接。在抄袭的浪潮面前,我们唯一能做的,就是不断打磨自己的产品,倾听用户的声音,快速响应市场的变化,始终保持创新的活力。只要你专注做好自己的产品,总有用户会为你买单。与其把时间浪费在对抗抄袭者上,不如把精力放在持续优化和创新中。产品终将为你发声,用户终将为你打破僵局。

2024-09-12 21:56:19 1229

原创 生词秒记不再难,Siphon插件让你的英语学习更高效

Siphon不仅帮你记录生词,还提供了多种学习模式。无论你是喜欢通过。

2024-09-09 21:23:43 1488

原创 如何通过学习英语,打出人生的‘王炸’?

通过以上三个经典案例,我们可以清楚地看到,英语不仅仅是一项语言技能,更是一张通向更广阔世界的“王炸”牌。它帮助唐骏在跨国公司中崛起,助力汤唯打破文化壁垒,成就了俞敏洪的教育帝国。英语这张牌,单独出或许普通,但当它与其他能力结合时,它就会成为改变你人生的“王炸”。你准备好出牌了吗?日拱一卒,砥砺前行!欢迎关注微信公众号:开发者实用工具合集实时获取最新动态。

2024-09-05 22:27:19 1034

原创 ImmersiveTranslate:一键中英对照,Google Chrome上不可或缺的翻译利器

综合来看,•双语对照模式方便语言学习和精准理解;•PDF翻译支持满足文档翻译需求;•简洁直观的界面提供流畅的用户体验。尽管其他插件在特定领域表现优秀,ImmersiveTranslate以其强大的整合能力和用户友好的设计,成为了Chrome浏览器上不可或缺的翻译工具。对于经常浏览外语内容的用户来说,它无疑是提升浏览体验的绝佳选择。建议读者亲自尝试使用ImmersiveTranslate,体验其带来的便捷与高效。日拱一卒,砥砺前行!欢迎关注微信公众号:开发者实用工具合集实时获取最新动态。

2024-09-02 22:39:09 2367

原创 让链接会说话一款为开发者、创作者打造的神奇分享图生成工具

Chrome 插件“Bookmark Style - Style Your Links”凭借其简单、直观的操作和强大的定制功能,成为开发者、创作者和内容营销人员的得力助手。•增强视觉吸引力:将普通链接转化为精美的图像,吸引更多的点击和分享。•提高分享效率:生成带有二维码的图片,让链接传播更加便捷。•支持多种定制:提供多样化的模板和样式,满足不同用户的品牌和风格需求。

2024-09-01 16:27:24 543

原创 一个浏览器插件如何月入12万美元:深入了解 GoFullPage

GoFullPage 是一款简单但功能强大的浏览器插件,特别适合需要捕捉完整网页截图的用户。对于开发者和设计师而言,这款工具可以节省大量时间和精力,而对于普通用户来说,它的简便性和实用性同样具备吸引力。Chrome 插件生态系统中的丰富多样性为用户提供了很多选择,而 GoFullPage 以其专注和高效的特性脱颖而出。如果你还没有尝试过这款工具,不妨安装试试,看它是否能帮助你提升浏览和工作体验。通过使用不同的插件,用户可以根据自己的需求大幅度优化浏览器的使用效率。

2024-08-31 17:26:44 1375

原创 慢慢的我开始意识到,做确定性的事只能收获确定性的成长

在我们职业生涯的道路上,确定性只能带来有限的成长。如果我们希望实现突破,就必须勇于面对不确定性。只有在不断挑战和调整的过程中,我们才能找到自己的真正价值,实现从开发者到企业家的转变。

2024-08-28 22:01:30 799 2

原创 致软件开发爱好者们

大家好,我是旺仔,作为一名软件开发技术爱好者,我深知在学习和成长的过程中,资源的重要性与不可或缺。无论你是初学者,还是经验丰富的开发人员,我们都需要不断学习和积累,才能在这个快速发展的技术领域立于不败之地。

2024-08-27 22:55:55 399 2

原创 没有人会窃取你的想法,关键在于执行

通过 Pieter Levels 的故事,我深刻理解了执行力的重要性。这不仅仅是创意的胜利,更是毅力和行动力的体现。无论是创业还是其他项目,只要我们能够坚持把想法执行下去,成功就会离我们越来越近。

2024-08-26 22:49:02 906

原创 别等一切都准备好,行动才是最好的计划

行动胜于等待,这不仅仅是一个口号,而是无数成功者的真实经验。无论是 Airbnb、Dropbox 还是 Slack,它们的成功都源自于不等待完美,而是立即行动的勇气。有想法就去做,别等到一切都准备好。

2024-08-25 11:34:09 1159

原创 FeHelper: 一个功能强大的开发者Chrome插件

FeHelper,全称为,是由中国开发者开发的一个非常实用的浏览器插件。它集成了多种前端开发工具,包括JSON解析、美化、压缩,编码转换、二维码生成与识别等功能。无论你是前端开发者,还是经常需要处理数据的普通用户,FeHelper都能提供极大的帮助。•官网地址: FeHelper 官方网站•GitHub地址: FeHelper GitHub 仓库FeHelper是一款功能强大且易用的Chrome插件,无论你是前端开发者还是普通用户,都能从中受益。它集成了多种实用工具,可以简化日常开发和数据处理的流程。

2024-08-12 23:14:57 3115

原创 Zookeeper临时节点删除时机解析

Zookeeper中的节点主要分为临时节点和持久节点。持久节点在创建之后,除非主动发起删除,否则节点会一直存在;而临时节点则不同,创建该节点的Session过期后,则该Session创建的所有临时节点都会被删除。本文主要来从源码的角度来分析下临时节点删除的全过程。既然当Session过期后,Zookeeper会删除该Session创建的所有临时节点,那么我们就可以从Session的管理器SessionTrackImpl入手。SessionTrackImpl本质上还是session桶管理的模式,所以针对

2022-12-03 10:26:01 2533 1

原创 Zookeeper事务日志预分配空间解析

Zookeeper的通过快照日志和事务日志将内存信息保存下来,记录下来每次请求的具体信息。尤其是其事务日志,每次处理事务请求时都需要将其记录下来。Zookeeper事务日志的默认存储方式是磁盘文件,那么Zookeeper的总体性能就受限与磁盘文件的写入速度。针对这个瓶颈,Zookeeper做了什么优化操作呢,本文我们就一起来了解下。事务日志的添加,我们需要从FileTxnLog.append()方法看起创建FileTxnLog对象时,其logStream属性为null,所以当第一次处理事务请求时,会先

2022-12-03 10:23:01 870

原创 Socket常见异常场景模拟实战

如标题所示,本文主要罗列下Socket编程中的那些常见异常,通过实战的方式来模拟这些异常。

2022-09-17 15:31:43 1368

原创 HTTP协议解析与实战

HTTP(HyperText Transfer Protocol)超文本传输协议,它是用于从服务器传输超文本到本地浏览器的一种传输协议。按照七层传输协议,HTTP位于应用层协议,在TCP协议之上。如下图所示。

2022-08-18 19:40:12 636

原创 TCP零窗口探测实战

当接收端的接收窗口被完全占用后,此时再来新的数据包就无处安放了,同时接收方回复给发送方的ACK中,Win也已经归零。上一文的示例中,接收端接收到消息后,并不处理,所以会一直占用接收端的接收窗口,一直到最后,完全占用了接收窗口。当接收方重新获取可用空间时,会给发送端传输一个窗口更新,发送端接收到该数据包之后,继续发送数据。假设一种情况,接收方发送窗口更新包丢失了,那么发送端就一直无法得到窗口更新的消息,一直在等待。为了避免这种互相等待的死锁情况,发送端会采用一个持续计时器,间歇性的查询接收端的窗口信息。...

2022-08-18 19:35:59 3199

原创 Socket发送缓冲区接收缓冲区快问快答

首先,我们要明确一下,通过socket发送数据之后(调用发送方法),数据并不是会直接发送到接收方。整个过程简略图如下:最终数据发送是要通过网卡的,但是socket没法直接将数据发送到网卡,所以只能先将数据发送到操作系统数据发送缓冲区。然后网卡从数据发送缓冲区中获取数据,再发送到接收方。socket接收数据,也不是直接从对端获取的。整个过程简略图如下:首先接收方机器网卡接收到发送方的数据后,先将数据保存到操作系统接收缓冲区。...

2022-08-08 20:48:21 5777

原创 Zookeeper客户端网络通讯模型分析

之前的Zookeeper系列文章中有分析过客户端如何发送具体的增删改查节点请求。这些文章的分析都是偏业务层面的。如今回想起来,还是不知道该如何回答接下来的问题:Zookeeper客户端的网络通讯模型是怎样的?接收到的响应是如何精确匹配到对应请求的?本文主要就围绕这个问题来展开下。有关于发送请求的一些具体内容,可以参考笔者之前的博客,比如: Zookeeper源码解析-客户端创建节点过程分析_恐龙弟旺仔的博客-CSDN博客 笔者主要从三个方面来分析下这个问题:包装请求、发送请求、接收响应下面以一次GET请求为

2022-07-03 17:30:56 881

原创 Zookeeper ZNode Stat对象信息解析

Zookeeper的视图结构和标准的UNIX文件系统类似,整个结构也是以树形目录结构展现的。Zookeeper中的每个节点称为ZNode,每个ZNode上既可以保存数据,也可以挂载子节点。关于ZNode,不仅可以存储数据,节点本身也有一些状态信息(Stat),本文就来分析下这个Stat信息。我们随意创建一个节点,可以使用Zookeeper客户端命令,如下所示:我们来逐个看下这些参数的含义cZxid即create zxid的缩写(创建该节点的事务ID),每一次事务操作都会有一个特定的zxid来代表当前事

2022-06-19 16:29:28 901

原创 zookeeper客户端断开自动重连相关代码分析

Zookeeper在我们的实际使用中,都是以集群模式来对外提供服务。在客户端的使用中,写入集群所有节点的ip:port信息,客户端启动后便会随机选择一个Zookeeper server节点创建长连接。如果当前连接的Zookeeper server节点网络异常,当前长连接便会断掉重连。本文主要就来看下Zookeeper客户端是如何检测连接断掉,并自动做重连动作的。有关于Zookeeper客户端状态的相关信息可以参考笔者另一篇博客: zookeeper客户端会话状态分析_恐龙弟旺仔的博客-CSDN博客 从笔者之

2022-06-18 09:27:51 1722

原创 TCP滑动窗口模拟实战

客户端与服务端之间的通信是一个数据传输的过程,消息以数据包形式进行传输。在传输的过程中,通过滑动窗口机制来同时传输多个数据包;发送端根据接收端的处理能力,适当控制发送窗口大小,实现流量控制。在数据包较大的情况下,需要将大的数据包拆分成多个小的数据包进行传输。接收端确认接收到一个数据包之后,发送端才能发送下一个数据包。整个过程如下图所示:很明显,这种方式方式的数据传输效率非常低,发送端只有等到接收端确认收到之后才能发送下一个数据包。为了改进这种情况,引入了窗口的概念。窗口大小是指:不需要等待确认包而可以继续发

2022-06-18 09:04:39 1459

原创 zookeeper客户端会话状态分析

Zookeeper客户端创建完成之后,后续就可以使用其进行请求发送,在请求发送之前,会先检查客户端与服务端的连接是否存在(是否有对应Session),如果不存在,则会先创建Session会话,后续的操作都会依据当前Session来发送。而当连接发生异常时(网络波动等),客户端会尝试重连服务端,其中又会涉及到Session状态的变化。本文就来了解下Session的创建及其状态的变化过程。客户端与服务端三次握手完成后,会发送ConnectRequest请求,服务端处理完成后,返回ConnectResponse,

2022-06-12 22:28:53 1505 1

原创 TCP协议之TIME_WAIT状态实战与分析

TCP/IP协议的三次握手和四次挥手,我们应该都滚瓜烂熟了。下面是一张代表发送接收双方全状态的图本文我们重点关注下TIME_WAIT状态。从图中我们可以看出来,该状态属于主动发起关闭的一方,在收到对方的关闭请求时,所处于的状态。按照TCP/IP协议规定:当TCP执行一个主动关闭并发送最终的ACK时,连接必须处于TIME_WAIT并持续两倍于最大生存期的时间,这样就能够让TCP重新发送最终的ACK以避免出现丢失的情况。Q:出现丢失?A:怎么理解出现丢失,我们看以下这种场景:当上图中的Server(在Clien

2022-06-12 21:48:19 1613

原创 TCP协议基于计时器的重传策略模拟实战

关于TCP协议的重传策略,是TCP数据传输正确性的重要保证。由于下层网络层协议可能出现的包丢失、重复、失序包等问题,当TCP协议基于某种策略确认当前包已经发生以上情况,就会启动重传。TCP拥有两套机制来完成重传:基于超时时间;基于确认消息(SACK);本文主要来模拟下基于超时时间的重传。笔者准备两台机器,一台启动ServerSocket服务,另一台就启动telnet命令进行连接发送请求等操作笔者这里使用的是标准的java ServerSocket,来启动一个端口监听,代码如下: 代码很简单,笔者不再多

2022-06-03 21:01:36 535

原创 TCP重置报文段的几种场景

TCP的重置报文段,就是TCP发送了RST包到对端。RST标志位在什么地方呢?我们通过TCP协议头部来看下(图片来自: TCP头部详解_却道天凉_好个秋的博客-CSDN博客_tcp头部)很明显,RST与我们熟悉的SYN、ACK和FIN标志位同属一个级别。但是日常工作中,我们对RST的使用不是很熟悉,本文就来介绍下哪些会产生RST的场景。这个场景很容易理解,如果我们telnet一个并不存在的端口,那么会被快速响应一个RST复位报文段常规的中止连接的方式都是发送FIN标志位,这被称为有序释放。(因为FIN是在所

2022-06-03 20:57:38 1393

原创 TCP连接超时模拟实战

前言:发送TCP请求连接远端服务器,在规定时间内没有返回ACK响应,这种情况一般我们称之为三次握手超时。三次握手连接超时的原因主要有两种:1)client发送SYN后,进入SYN_SENT状态,等待server的SYN+ACK超时;2)server收到client发送的SYN后,返回SYN+ACK,进入SYN_RECV状态,等待client的ack超时;当超时发生时,就会重传,一直到某一个阈值,还没有收到回应,则会放弃,终止本次连接的创建。本文我们就来模拟下第一种超时现象。

2022-05-31 23:38:11 2563 2

原创 TCP backlog解析与实战

前言:针对TCP连接三次握手,我们都已经非常熟悉了。那么三次握手之后是不是就一定会被服务端处理请求了呢?可能我们不太清楚操作系统的具体做法,但是凭感觉我们会有两方面的思考:1)如果大量的客户端连接发送SYN请求,服务器根本无力处置这么多SYN请求,那么怎么做限流操作来避免自己被冲垮呢?2)三次握手成功之后,服务端处理程序一直在忙于之前的连接的业务处理,长时间没有感知到新的连接到了,那么对于这个客户端发来的请求应该怎么操作呢?本文就通过对TCP backlog来回答下上述两个问题。

2022-05-28 10:14:19 2703

原创 TCP协议解析与实战

前言:之前我们介绍过IP协议和ICMP协议,这两个协议在OSI模型中都位于网络层,主要负责数据包的传递。但是IP协议只负责传输,如果在包传输过程中出现分片乱序、包丢失等问题,IP协议是不负责解决的。所以针对这种异常情况的解决,就需要更上层协议来解决了,这个就是我们本次介绍的TCP协议。1.TCP协议概述1.1 什么是TCP协议?TCP(Transmission Control Protocol)传输控制协议。该协议是一种面向连接的、可靠的、基于IP的传输层协议。1)传

2022-05-22 12:36:00 2243 1

原创 ICMP协议解析与实战

1.ICMP协议概述1.1 什么是ICMP?ICMP(Internet Control Message Protocol的缩写),中文就是:网际报文控制协议。该协议是网络协议族的核心协议之一。通过一张图来看下该协议所处位置:(图片来自百度安全验证):可以看到,ICMP协议与IP协议同属网络层。虽然两者同属网络层,没有上下级关系,但是ICMP协议最终还是要依靠IP协议将报文发送出去。1.2 ICMP协议作用IP协议我们知道是发送数据包的重要协议,实现了数据包的分片发送.

2022-05-21 11:02:05 4945 1

原创 IP协议解析与实战

1.IP协议概述1.1 什么是IP协议?IP(Internet Protocol缩写)中文就是网际协议,这个比较抽象,我们比较熟悉的还是ip地址。ip地址翻译成中文就是网际协议地址。这个地址与我们之前说过的MAC地址有什么关系呢?既然物理机器已经有了MAC地址,那么还需要IP地址做什么呢?1.2 IP地址作用通过之前对ARP协议的分析,可以发现它是通过MAC地址发送数据的,但是其有一个很大的问题:ARP协议是子网广播协议(在子网中的所有的设备都会收到该ARP协议数据包)。

2022-05-15 16:39:45 2794 1

原创 ARP协议解析与实战

1.ARP协议概述1.1 什么是ARP协议?ARP是Address Resolution Protocol的简写。翻译成中文就是:地址解析协议。那么解析什么地址呢?本质上就是把IP解析成MAC的一种协议。1.2 为什么需要把IP解析成MAC地址?看了ARP协议的内容,难免我们会有一个疑问,就是当前主题。我们知道根据OSI模型,把网络工作分为七层,如下图所示(图片来自:计算机网络-数据结构-MAC帧头-IP头-TCP头-UDP头 - 多情剑客无情剑; - 博客园 ):以..

2022-05-14 19:02:07 1195

原创 log4j2异步日志的使用

前言:之前三篇文章我们介绍过log4j、logback以及log4j2的springboot使用方式。那么在实际的工作中,我们应该使用哪种日志框架呢?做选择之前,我们肯定要有所比对,究竟哪种日志框架性能最好,使用最方便?从下图中(来自log4j2官网测试)可以看出,log4j2(有三种模式[全异步、混合异步、同步])的性能吊打log4j1和logback。尤其在多线程的测试下,log4j2的性能更是火力全开。所以,为了实现更好的日志打印,我们就选择log4j2即可。.

2022-05-12 22:01:09 3939

原创 log4j2使用实战

前言:今天完成最后一篇文章的介绍,也就是我们的log4j2。log4j2的优点笔者就不再介绍了,网上一大堆相关文章。简单粗暴点,我们直接上使用。1.log4j2单独使用实战1.1 引入maven依赖 <!-- log4j2 依赖 --> <dependency> <groupId>org.apache.logging.log4j</groupId> <

2022-05-08 21:14:07 725 1

原创 logback使用实战

前言:上文我们介绍了log4j的三种使用情况。本文依旧按照这种方式来介绍下logback的使用。只不过logback与log4j是有所不同的,logback-classic包本身就引入了slf4j相关包(slf4j-api),而logback-classic包里也包含了slf4j-logback的相关对接实现。所以使用logback-classic包就相当于使用了slf4j1.logback单独使用1.1 引入maven依赖 <dependency>

2022-05-08 21:10:13 915

原创 log4j使用实战

前言:每次排查log相关的问题总会被逼疯,log4j、logback、log4j2这几个之间的关系,尤其再加上slf4j,那酸爽,经历过的人都懂。所以才促成了笔者这一个系列的博客:log4j实战、logback实战、log4j2实战。我们从三个方法来实战每一种log类型:log单独使用、log与slf4j的组合、springboot与log的组合。当然,笔者这个系列的文章,并不是科普类文章,有关于log.xml如何配置这些知识点网络上已经有很多文章了,不再赘述。希望整理完这个系列之后

2022-05-06 22:40:01 634

深入分析Java+web 技术内幕part1

首先介绍前端知识,主要介绍JavaWeb开发中涉及的一些基本知识,包括Web请求过程、HTTP协议、DNS技术和CDN技术。其次深入介绍Java技术,包括I/O技术、中文编码问题、Javac编译原理、class文件结构解析、ClassLoader工作机制及JVM的内存管理等。最后介绍Java服务端技术,主要包括Servlet、Session与Cookie、Tomcat与Jetty服务器、Spring容器、Ibatis框架和Velocity框架等原理介绍。

2017-09-12

redis学习笔记

个人学习redis时候的笔记,例子比较齐全,比较详细,一步一步均有记录,保证一看就会,适合入门人员

2015-12-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除