- 博客(239)
- 资源 (82)
- 收藏
- 关注
原创 使用supportFragmentManager管理多个fragment切换
如果我们使用一个activity来创建程序,来用占位符管理多个fragment切换,这里水一篇最简单直接的做法。
2024-06-26 15:22:32 1165
原创 BirdTalk IM集群中消息流转策略讨论
目前群聊的存储策略是1写多读方案;每个群组一个队列,按时间顺序排列,不区分用户;私聊的存储是写扩散的,每个人都有自己的消息队列,按时间顺序 保存所有的消息,不区分会话;
2024-06-21 07:51:53 711
原创 使用 MobileNet和ImageHash做图片相似度匹配(以图搜图)
使用MobileNet 和图片哈希提取图片特征值比对相似相;MobileNet还可以用于图片分类;
2024-06-02 10:45:49 1396
原创 LM-Studio无法搜索以及下载失败的问题对策
LM STUDIO 是一个用户加载大模型的工具,内置了很多做好的镜像,搜索并下载就可以在本地运行。但是它更多依赖于一个网站,所以很多人无法直接使用;软件安装很容易,但是我没有找到设置网络的地方,无法施展黑魔法,所以换种办法。
2024-05-31 05:08:07 6340 4
原创 Drafty-基于JSON的标记语言来描述聊天内容(代码解释)
函数执行格式化,因为GO格式化后的内容,毕竟不是在android 和 ios 中可以显示的控件中使用,所以和其他版本的格式化不太一样;通过这些类,开发者可以对文本的不同部分应用特定的样式和属性,从而实现类似的效果。使用上述的结构解析之后,fmt也可以转为对应的span,这些span 是一个一个罗列的小片段,这个函数简单的总结就是一个递归函数,对其中的文本进行格式化处理,不过GO确实没有啥可处理的。那么这里的span 不仅仅是并列的关系,而且还是一个树状的关系,这里。中对文本的某些部分应用特定的样式或行为。
2024-05-30 15:01:24 947
原创 Drafty-基于JSON的标记语言来描述聊天内容
这份文档介绍了 Drafty,一种由 Tinode 使用的文本格式,用于为消息添加样式。Drafty 的目标是在表达能力足够的同时,不会开放太多的可能性以避免安全问题。你可以将它视为将 JSON 封装了一下的。Drafty 受到了 Facebook 的规范的影响。截至撰写本文时,已经存在和的实现。还有一个,可以将 Drafty 转换为纯文本和预览。这样的好处就是在机器人交互时候可以发送一些格式化的文本,而不仅仅是微信和QQ那种无格式文本;
2024-05-29 14:16:29 1082
原创 使用2G内存求20亿个数字中出现次数最多的N个
1)分为80块,分块读取1G,排序后保存到文件,其中只保存每个数字的次数;2)对80个文件归并排序,可以写到一个大文件里,每个文件的滑动块大小为25MB;注意,归并的同时,就可以知道当前最大次数的数字,所以可以不写入合并的大文件;1)分块读取和排序:将20亿个数字分成80块,每块1GB大小,这样确保了每个小块可以在内存中进行排序,同时最大限度地减少了内存的使用。2)压缩存储:在每个小块中,只保存每个数字出现的次数,而不是保存所有数字。这样可以大大减少文件的大小,确保每个文件不超过2GB的限制。
2024-05-10 21:43:54 349
原创 使用go_concurrent_map 管理 并发更新缓存
在后台服务中,为了提速,我在内存还做了一个告诉缓存来管理用户信息,根据更新通知,或者定时去redis中同步信息,那么在加载或者更新某个用户元素时,要防止并发,这个类在插入时候,可以检测是否存在,并通过回调函数来决定是插入还是更新;这个加锁已经放在插入函数中完成了;2)去数据库或者redis加载;这里就有个并发重复的可能性;1)如果内存缓存没有;3)添加到内存缓存;
2024-04-19 09:01:12 347
原创 关于js使用protobuf中的int64的问题
默认情况下,生成的js代码中使用number表示int64,这样在具体交互过程中,数据就不精准;具体可以使用[jstype = JS_STRING] 标记让JS按照字符串处理;
2024-04-17 12:21:50 559
原创 浏览器内使用JS和椭圆曲线密钥交换
与之相比,通常使用的其他导出类型包括 "spki"(SubjectPublicKeyInfo)和 "pkcs8"(Private-Key Information Syntax Standard #8)。"spki" 用于导出公钥,"pkcs8" 用于导出私钥。:导出的是 Private-Key Information Syntax Standard #8 结构,包含了私钥的算法标识和私钥本身。备注:公钥可以导出,私钥不允许导出,所以只能生成秘钥之后,保存共享密钥,用指纹来标记;
2024-04-16 16:25:40 258
原创 消息存储与同步策略设计
优点:以用户为中心比以会话为中心(tinode)的好处就是消息管理更加容易;每个用户的数据相对集中,可以快速的找到并一次性同步给客户;缺点:数据需要存储2份;优点:群聊使用读扩散,存储数据量少;缺点:读扩散,如果用户反复离线与上线,需要读取离线数据,对scylladb压力比较大;
2024-04-02 22:15:24 874
原创 用go实现一个任务调度类 (泛型)
实现了一个简单的任务管理系统,允许用户定义任务和工作者,并将任务分配给工作者进行处理。这个系统旨在提供一个灵活的任务管理框架,可以根据需要动态地添加和移除工作者,以及处理任务。
2024-03-24 15:25:41 612
原创 椭圆曲线密钥交换 (Elliptic Curve Diffie-Hellman, ECDH)代替DH秘钥交换
椭圆曲线加密(Elliptic Curve Cryptography,ECC)和迪菲-赫尔曼密钥交换(Diffie-Hellman Key Exchange,DH)都是现代密码学中常用的技术,它们可以用于安全地交换密钥和加密通信。
2024-03-23 14:01:14 1337
原创 websocket 自制证书握手报错问题
此外,在websocket king client插件中测试使用时候需要加问号以及参数,否则链接错误。在JS中使用wss,网页的的地址也不要使用域名,而需要使用ip地址方式?
2024-03-20 09:39:38 205
原创 IM服务集群与跨服务器消息路由策略
在单机模式下,相对简单,认为所有的客户都在同一台服务器上,姑且认为1台服务器可以同时支持1万用户在线,在更多用户同时在线时,则需要集群来实现负载均衡。集群的算法需要解决故障处理以及动态添加的问题,同时需要考虑如何在集群节点间路由数据。
2024-03-18 14:39:56 1378
原创 使用golang发送邮件
目前大多应用都是手机登录,但是作为开源的一个软件,或者是私有的一个应用,那么使用手机短信接收验证码成本比较高,使用邮箱相对更容易,邮件其实是有格式的,不是随便发一个字符串过去就好了。这里从tinode中取出发邮件的部分做一个测试,如果不报错,就去收件箱接收邮件就好了。
2024-01-30 11:14:35 933
原创 使用scyllaDb 或者cassandra存储聊天记录
目前开源的聊天软件主要还是使用mysql存储数据,数据量大的时候比较麻烦;我打算使用scyllaDB存储用户的聊天记录,使用golang开发
2024-01-27 13:56:08 1400
原创 安卓上使用免费的地图OpenStreetMap
我在手机上直接运行,方便使用clash设置网络,我最近发现真机调试比模拟器好用多了。前一段使用了微信的地图,非常的好用。但是存在的问题是海外无法使用,出国就不能用了;其实国内三家:百度,高德,微信都是一样的问题,当涉及到商业使用的时候需要付费;国外除了谷歌还有一个选择,OpenSteetMap,这里记录一下使用流程。2)AndroidManifest.xml中添加依赖。1)模块的build.gradle添加。5) Fragment中添加初始化函数。4)主文件初始化中添加,
2024-01-08 22:24:34 948
原创 使用travelbook架设自己的实时位置共享服务
travelbook 是一款开源的安卓APP,它能以低功耗提供实时位置共享,它包含功能如下:好友之间分享实时位置;记录行程轨迹;标记收藏地点;对比目前市场的一些实时位置共享软件,这款软件APP和后端服务都是开源的,完全可以自己架设私有服务器,家人或者团队使用,避免了烦人的广告,也可以避免隐私扩展问题,同时也不必担心非法信息采集的问题。
2023-12-24 21:54:35 845 1
原创 从零开始写一个APM监控程序(一)协议
它支持多种语言,包括 Java、.NET、Node.js、Go 等,可以跟踪分布式系统中的请求流,并提供详细的性能数据和可视化的监控工具。采集数据的部分分为探针和SDK两种,比如是JAVA和dotNet有虚拟机的,可以使用hook技术来拦截自己需要的方法,如果是编译型语言基本上使用的是SDK,程序员插码的方式实现。它通过收集、分析和报告应用程序的性能数据,帮助开发人员和系统管理员更好地了解应用程序的运行状况,识别潜在的性能问题,并进行优化。对收集到的数据进行分析,以识别性能瓶颈、错误和潜在的优化点。
2023-11-18 16:28:52 777
原创 ffmpeg常用方法
FFmpeg 是一款开源的音视频处理工具,可以处理各种格式的音视频文件,并且可以进行格式转换、剪切、合并、添加水印等多种操作。
2023-03-17 12:04:49 959 1
原创 编写http workshop脚本从网站下载音乐
一般网页格式播放器的设计的访问流程基本都是:通过某个专辑ID获取媒体列表;根据列表中单个的媒体资源的ID去请求下载路径;
2023-03-05 12:36:31 415
原创 c++封装libxml2解析网页
有页面不符合XML规范,节点没有闭合,造成XPATH搜不到任何东西,主要是解析树时候名字丢失了,但是通过自己手写深度递归查找还是可以的,
2023-03-03 10:14:58 220
原创 使用开源httpworkshop执行http api测试与资源下载
httpworkshop集成了lua脚本引擎,可以通过脚本复用以及扩展DLL方式支持更多的功能;可以方便的实现http api测试以及资源分析下载。
2023-03-01 13:03:37 258
原创 关于联想Y7000P睡眠后无法唤醒问题修复
安装程序执行后,自动重启,开始自动更新,发现之前是45WW,目前是49WW。这个新的机器是WINDOWS11的,症状了自己睡眠后就醒不过来了,于是找了在线客服,客服问是否是在禁用触摸板情况下无法唤醒,我试试发现果然是,不禁用可以唤醒,禁用了就行了,只能重启;于是,我试了一下,果然更新时候发现之前的版本比较旧,于是我找到了公众号,提示下载一个软件修复驱动,页面有相关的说明,以及新版本BIOS的版本是。再然后就自动重启进入windows11了,此时测试发现,已经可以正常唤醒计算机了。
2023-02-21 13:05:21 3820 1
jQuery-File-Upload9.7
2014-08-16
Libevent Reference Manual 2.0
2014-02-21
Mongo图形客户端
2012-11-09
QWhale Syntax Editor
2012-09-15
SCPS_Project-master.zip
2021-01-08
GDAL-3.1.3x64.zip
2020-12-11
TestHTTPGetAndroid27.rar
2020-05-17
net.sf.json.JSONObject需要引用几个JAR包
2020-05-15
io.oversec.one_1005015.apk
2020-04-27
File2QRcode.rar
2019-09-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人