- 博客(139)
- 问答 (2)
- 收藏
- 关注

原创 全干工程师的博客目录
一直在一家公司兢兢业业的,但是因为是全干工程师,加上就业形势严峻,依旧在此处拿着微薄的工资做全部的工作,不过想想未来自己是想要有自己的企业,所以成为全干工程师或许是为自己日后的事业成就做一些微不足道的贡献把。游戏性能测试也是在具体项目中成熟应用,形成自研产品前的不断总结深入和避坑。手机音视频流在具体项目中成熟应用,形成自研产品前的不断总结深入和避坑。从硕士毕业至今工作了四年整,现在开始了第五年工作。Python系列用于写一些脚本时的总结。LeetCode Python系列,上学时刷的。
2023-07-16 16:44:43
311
原创 Unity/Tuanjie 在微信小游戏使用udp通信
一般来讲,微信小游戏与web页面类似。我们在网页中更习惯的是使用websocket进行通信。Websocket本身是基于TCP进行封装的,在确定TCP达不到我们要求的延迟时,我们只能选择使用UDP。这边参考微信小游戏的来实现一个简单的Demo。首先,由于UDP是面向无连接的,只是单方向发送报文信息,没有Response,我们怎么才能确认UDP信息呢。我们用Go实现一个简单的UDP Server,收到什么消息就返回什么消息,将客户端发送和接收到的信息进行对比就知道了。
2025-01-24 15:24:21
327
原创 【工具】拯救 YAML 强迫症!这个开源编辑器让你告别配置文件噩梦!
厌倦了手写 YAML受够了数空格想要一个顺手的工具那就来试试这个项目吧!保证让你爱不释手,用了都说好!
2024-12-25 16:16:56
1392
1
原创 【Roadmap】欢迎来到数字时代的“魔法门”——Web浏览器的奇妙世界
什么是网页浏览器?网页浏览器就像是一个超级智能的导游,带着你穿梭于万维网(World Wide Web)这座巨大的迷宫之中。当你在地址栏输入一个网址时,比如,这位导游就会立即行动起来,前往指定的目的地——服务器那里获取信息,再把它翻译成你能看懂的语言——也就是漂亮的网页界面。这样一来,即使你不记得那些复杂的IP地址或者技术术语,也能轻松访问全球各地的信息资源啦!回顾过去几十年间浏览器的发展历程,我们可以看到每一次技术革新都是为了给用户提供更好的服务。
2024-12-23 10:59:22
949
原创 【Roadmap】互联网的“电话簿”——DNS:域名与IP地址的奇妙翻译官
它不仅简化了我们的上网方式,而且通过不断进化,保证了我们能够在一个更加安全和高效的网络环境中畅游。希望这篇文章让你对DNS有了更深的理解,也欢迎大家留言讨论或提出任何疑问!
2024-12-23 10:47:41
845
原创 【工具】ElementEye,网页分析器
我们经常使用Python写爬虫,爬到网页数据之后,就需要用beautifulSoup进行解析。因为写爬虫并不是我的主营工作,大多数只是用来分析一下想要的数据而已,所以经常会忘记beautifulSoup的用法。同时,我们总是分析页面的话在F12里面查看源码,用ctrl+f进行过滤,这样有时候挺麻烦,有时候我就想过滤对应的标签,或者根据id还是class进行过滤,就希望有个方便的工具。就是这么一个工具。它是一个用于解析和分析HTML元素的可视化工具,它提供了直观的界面来查看和过滤网页中的HTML标签结构。
2024-12-11 22:27:13
554
1
原创 【Roadmap】域名:互联网世界的“门牌号”
想象一下,如果你住在一座巨大的公寓楼里,每个房间都有一个独特的编号,这样快递员就能准确无误地把包裹送到你的手中。举个例子,如果你想查“mozilla.org”,你会得到一堆关于这个域名的历史、所有者和其他技术细节的信息。但如果查的是一个未注册的域名,比如“afunkydomainname.org”,那么结果就会显示“NOT FOUND”。:这是域名的最后一部分,它告诉用户这个网站的大致用途。例如,“developer”和“support”都是“mozilla.org”的子域,分别指向不同的内容和服务。
2024-12-10 21:52:09
427
原创 【Roadmap】HTTP:万维网的“信使”与它的奇妙世界
为了防止这种情况发生,现在有很多防护措施,比如Cloudflare提供的DDoS保护服务,确保我们的“信件”能够安全、准时地送达。想象一下,HTTP就像是网络世界的邮递员,它负责把你的请求送到服务器那里,然后再把服务器的回复带回给你。如果你要给服务器发送更多信息,比如填写在线表格时输入的名字和密码,那么这些信息就会被放在HTTP请求的正文中。正文就像是你信件中的主要内容,包含了你需要传递的所有细节。例如,它可能会告诉你我是用Chrome浏览器发出请求的,或者我正在寻找中文版的网页内容。
2024-12-10 21:41:00
533
原创 【Roadmap】搞定互联网:从“网络的网络”到未来的数字世界
每当你在网上发送一条消息或下载一首歌时,你的请求就会被打包成一个个小包裹(数据包),然后由路由器这个“交通警察”指挥,确保每个包裹都能准确无误地到达目的地。它们来自世界各地,有的在你家的客厅里,有的可能正在太空站上漂浮着。想象一下,如果你能将地球上所有的计算机、手机和其他设备都编织进一个巨大的、看不见的蜘蛛网中,那会是什么样的景象?没错,那就是我们所说的互联网!而HTTPS则像是加装了防弹玻璃的豪华轿车,为你的数据提供额外的安全保护。同样的道理,IP地址是给机器看的,而域名则是为我们人类准备的友好标签。
2024-12-10 21:36:17
302
原创 【工具】番茄钟与Todo List:用Go构建高效的时间管理工具
番茄工作法是一种简单而有效的时间管理方法,通过设定25分钟的工作时段(称为“一个番茄”),之后休息5分钟,来帮助人们保持专注并避免疲劳。每完成四个番茄后,建议进行一次较长的休息。这种方法被广泛认为有助于提高工作效率和个人生产力。通过这个项目,我们不仅实现了对经典番茄工作法的支持,还结合了现代的Todo List功能,以帮助更多的人提升他们的生活和工作效率。同时,在整个开发过程中,我们也深刻体会到了Golang的魅力及其在构建高并发应用方面的优势。
2024-12-08 22:16:11
1144
原创 【工具】“跟你说悄悄话”:基于PC端的图片隐写工具
在当今数字化时代,信息安全变得越来越重要。硕士研究期间就是做信息隐藏相关的算法研究,无奈这个方向压根找不到工作,因此去做了软件开发,现在闲暇之余,开发了对应的产品。“跟你说悄悄话”是一款专门为PC端设计的图片隐写工具,它利用了三种基础但强大的嵌入算法——LSB(最低有效位)、DCT(离散余弦变换)和DWT(离散小波变换),为用户提供了一种安全而有趣的方式来隐藏和传递信息。“跟你说悄悄话”不仅是一个实用的工具,也是一个有趣的实验平台,让用户能够在日常生活中体验到隐写术的魅力。
2024-12-04 14:50:07
384
3
原创 【Go系列】Go的UI框架GIO
其实主要我是要花一个折线图,但是使用Fyne貌似画不出来,使用plot也没法动态生成,听说Gio可以,那就先介绍一下什么是Gio把。GIO(gioui.org)是一个用于Go语言的跨平台GUI库,旨在为开发人员提供构建现代图形用户界面的工具。
2024-07-24 23:49:01
1847
1
原创 【Go系列】Go的UI框架Fyne
总有人说Go语言是一门后端编程语言。Go虽然能够很好地处理后端开发,但是者不代表它没有UI库,不能做GUI,我们一起来看看Go怎么来画UI吧。
2024-07-23 22:49:42
1841
原创 【DevOps系列】构建Devops系统
那就着手开始干吧。先介绍一下我们的工具链。主要工具:GitHub、Jenkins、Kubernetes、Ansible、Prometheus和JMeter。
2024-07-23 00:01:04
2477
原创 【Go程序】爬虫获取豆瓣Top250
里面有一项使用了豆瓣的API,获取豆瓣的Top250的电影。但是由于豆瓣的OpenAPI改版了,又不好申请到OpenAPI的资格,想想也不是什么非法的事情,就稍微搞几部电影名字嘛。一般来讲,我们经常用Python写爬虫来解析数据,主要是因为request库和beautifulsoup4库过于好用了点,每次都会忘记怎么用,每次看个例子又能用起来了。这里需要用到一个库,goquery,功能和bs4一样,用于解析获取到的xml,然后net/http方法用于替代python的request库。
2024-07-23 00:00:05
1166
原创 【Devops系统】如何构建Devops系统
首先明确DevOps系统的总体目标,比如提高软件发布频率、缩短反馈时间、提升软件质量等。确立DevOps的原则,如持续集成(CI)、持续交付(CD)、持续部署(CD)和基础设施即代码(IaC)。
2024-07-22 21:15:00
849
原创 【DevOps系列】什么是DevOps
随着技术的发展和市场需求的变化,软件开发方法也在不断地进化。从瀑布模型的结构化,到敏捷开发的灵活性,再到DevOps的集成与自动化,每一种方法论都是为了更好地适应软件开发的挑战和机遇。在实践中,许多组织结合使用这些方法的元素,创造出最适合自身情况的混合模式。
2024-07-22 09:04:59
1171
原创 【Go系列】RPC和grpc
简单来说,RPC就是让你在本地调用一个函数,却能够远程执行另一台机器上的代码。想象一下,你在家里的沙发上按了一个遥控器,结果远在千里之外的咖啡机开始给你煮咖啡,是不是很神奇?RPC就是这么个神奇的“遥控器”。
2024-07-19 10:25:34
1452
1
原创 【Go系列】Go语言的网络服务
你可以创建一个自定义的HTTP客户端,以设置超时、代理和其他选项。if err!= nil {panic(err)// 处理响应在RESTful API中,每个资源都应该对应一个URL。
2024-07-18 09:04:06
1122
原创 【Go系列】模块和协同开发
上面那段话提到了依赖地狱问题,这是什么问题呢?“依赖地狱”(Dependency Hell)是在软件工程中常见的问题,特别是在依赖管理不够完善的语言和环境中。依赖冲突:当不同的软件包或模块需要不同版本的同一个依赖时,会发生冲突。这可能导致程序无法正常运行,因为不同版本的依赖可能不兼容。依赖循环:当两个或更多的软件包相互依赖时,可能会形成一个循环依赖,使得依赖关系无法解析。版本不一致:在不同的环境中,依赖的版本可能不一致,导致程序在不同的地方表现不同,难以重现和调试问题。依赖过多。
2024-07-18 08:55:49
1416
原创 【Go系列】Go语言的测试
单元测试是指对软件中的最小可测试部分进行检查。在面向对象编程中,这通常指的是单个方法或函数;在过程式编程中,则可能是一个过程或函数。单元测试的目标是验证这个单元是否正确执行了预定的任务,并且没有意外的副作用。基准测试(Benchmark Testing),也称为性能测试,是一种测量和评估软件或硬件性能的测试方法。在软件开发中,基准测试通常用于评估代码片段或算法的运行效率,包括执行速度、内存使用、吞吐量等性能指标。评估性能:确定代码或系统在特定条件下的性能表现。性能优化。
2024-07-17 08:27:27
1140
1
原创 【Go系列】Slice详解
切片是Go语言中的一种动态数组,它可以按需自动扩容。切片的底层是由三个部分组成:指针、长度和容量。指针:指向切片底层数组的第一个元素。长度:切片中当前元素的个数。容量:底层数组从切片的第一个元素到最后一个元素的数量。
2024-07-17 08:26:58
1068
原创 【Go系列】Go的反射
反射是程序在运行时检查自身结构的能力。简单来说,反射允许我们在不知道具体类型的情况下,获取类型信息、创建对象、调用方法等。这在动态编程或需要编写通用代码的场景中非常有用。
2024-07-16 10:58:56
460
原创 【Go系列】Go的内存分配
在上一篇文章中,我们介绍了go的指针类型,*和Unsafe.Point以及uintptr的区别。在高级编程语言中,例如Java,是直接忽略掉指针这个概念的。像C++,是能够自由使用指针的,但是C++需要自己进行内存的分配和回收。为什么Go要构建这三种指针类型呢,也是为了方便内存。如果对Go语言了解没那么深入或者系统要求没那么多的,一般也不会用到指针类型,这就保证了整个Go应用的高效性。既然已经说到了内存分配,咱们今天就来说说Go的内存分配把。
2024-07-16 10:42:03
1215
原创 【Go系列】Go的指针
我们在前面的文章中,首先介绍了GO的基础语法,然后介绍了Goroutine和channel这个最具有特色的东西,同时介绍了Sync和context,以及在上篇文章中详细距离说明了Go里面用于高并发的多种写法。基础的使用方法也告一段落了,我们要进入新的篇章,就是Go的指针,这边的指针类型不仅是一个地址,还有Unsafe.Point,还有intptr,让我们详细看看。
2024-07-15 08:48:51
906
原创 【Go系列】 Go的高并发模式
我们在之前已经学习了goroutine和channel的并发模式,也学会了sync库和context的控制。那么在Go里面一般都会使用哪些高并发模式呢?今天让我们在这篇文章中一起揭晓一下。
2024-07-15 08:37:58
1046
原创 【Go系列】 Context的使用
我们在上篇文章中介绍了Sync,可以通过多种同步原语来处理资源竞争的问题。同样的,今天要介绍的context可以用于并发控制的,除此以外,还有很多其他的方法,我们一起来看看。
2024-07-14 14:04:21
796
原创 【Go系列】 Sync并发控制
在上一篇文章中,我们介绍了goroutine和channel,理论上,通过channel可以实现并发控制,但是其他语言的开发者可能更习惯一些原子操作的库。当然Go语言也会提供这样的库,所以我们今天了解一下sync库。
2024-07-14 13:21:09
1153
原创 【Go系列】 Struct与interface
structAge intimport ("fmt""math"c.Scale(2)在上面的例子中,Area方法是一个值接收者方法,它返回圆的面积。Scale方法是一个指针接收者方法,它修改圆的半径。interfaceGo语言的设计哲学与传统的面向对象语言不同,它不提供传统的继承机制,而是使用组合(embedding)和接口来实现代码复用和多态。
2024-07-12 08:36:25
1081
1
原创 【Go系列】 函数与方法
学习完了几种数据结构,以及条件语句和循环语句,按照一般高级语言的想法,应该是要开始介绍函数了。Go语言也不例外。在其他的OOP语言中,函数位于类中的就是这个类的方法,而Go语言并没有类这种对象,那么Go的方法是怎么定义的呢?
2024-07-12 08:22:12
1380
1
原创 【Go系列】 array、slice 和 map
我们上一篇文章中介绍了if和for,这不得练习下,让我们一起来实践一下如何使用continue语句来计算100以内的偶数之和。在我们编写代码的过程中,continue语句将会帮助我们跳过某些不需要的迭代,比如在这个例子中,我们会跳过所有的奇数。
2024-07-11 21:00:50
823
原创 【Go系列】 if、for、switch —— 逻辑语句的精粹
在上一篇文章中,我们探讨了字符串查找功能,例如在“今天天气真好”中搜索“今天”。通过使用Go语言标准库中的函数,我们可以轻松实现这一功能。今天在这篇文章中,我们将深入Go语言的代码逻辑控制,学习如何使用流程控制语句来构建程序的逻辑结构。
2024-07-11 10:03:04
357
原创 【Go系列】 Go语言数据结构
定义常量与变量类似,不过使用的关键字是const。const name = "天气真好"在 Go 语言中,常量可以是布尔型、字符串或数字类型。
2024-07-11 08:42:31
854
原创 【Go系列】 Go语言的入门
从今天起,我们将一同启程探索 Go 语言的奥秘。我会用简单明了的方式,逐一讲解 Go 语言的各个知识点,帮助你从基础做起,一步步深化理解。不论你之前是否有过 Go 语言的接触经验,这个系列文章都将助你收获满满。现在,让我以一个经典的例子“Hello World”来带你入门 Go 语言,了解它是如何运行起来的。
2024-07-10 22:33:58
743
原创 [SQL系列]从零开始学Clickhouse——集群篇
在上一篇中,我们通过Docker构建了一个简单的单点Clickhouse,但是如果要做大数据的处理的话,Clickhouse集群是必不可少的,今天我们先用Docker简单地搭建一个Clickhouse集群。
2024-04-29 23:04:57
2218
2
空空如也
h264流转mp4或者hlv流,网页实时播放
2023-02-03
把matlab打包成jar在java中运行,小波变换运行不了
2016-04-07
关于LIBSVM的问题和改写SVDD的问题
2015-12-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人