自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

andrewbytecoder

keep life simple! stupid

  • 博客(662)
  • 资源 (24)
  • 收藏
  • 关注

原创 Redis解读

Redis简介Redis解读

2022-05-13 14:07:51 303 1

原创 自己开源项目汇总

从零构建cmake管理的live555开源工程代码仓库:live555-cmake视频教程:live555-cmake

2020-11-17 17:28:51 498

原创 linux系列文章

linux文章汇总VIMbashMakefileubootu-boot编译过程分析linuxLinux系统编程Linux/UNIX网络编程

2019-11-09 22:07:43 953

原创 linux开发常用工具集

工具集 – linuxMarkdown 编辑器 – TyporaGit版本管理软件 – SmartGitDiff 比较软件 – Meld Diff 差异查看器代码编辑器 – Source Insight代码查看 – Visual Studio Code抓包 – WireShark截图软件-- Shutter串口软件 – PUTTY桌面壁纸软件 – Wallch浏览器 – ...

2019-03-05 22:51:24 795

原创 kube-prometheus之alertmanager全

kube-prometheus中的Alertmanager包含8个核心配置文件,主要用于配置告警管理服务。其中: alertmanager-podDisruptionBudget.yaml定义Pod中断预算,确保集群操作时至少1个Alertmanager实例可用。 alertmanager-secret.yaml存储Alertmanager核心配置,包括全局参数、抑制规则和路由策略。 alertmanager-service.yaml暴露Alertmanager服务,同时包含serviceMonitor配置

2025-11-07 11:31:59 651

原创 源码分析 golang bigcache 高性能无 GC 开销的缓存设计实现

BigCache是Go语言实现的高性能内存缓存库,其核心设计通过分片(1024个shard)降低锁竞争,使用环形缓冲区(ringbuffer)存储数据,配合无指针的哈希索引规避GC扫描。采用覆盖写+时间窗口淘汰策略,而非传统LRU/LFU。数据需序列化为[]byte存储,带来编解码开销但避免GC压力。适合大吞吐量场景,需权衡序列化成本与GC优化收益。

2025-10-15 13:59:06 234 1

原创 深入理解连接跟踪(conntrack)

Linux 连接跟踪(conntrack)是内核用于跟踪网络连接状态的核心机制,为状态防火墙和 NAT 提供支持。它通过 Netfilter 框架拦截数据包,记录 TCP/UDP/ICMP 等协议连接信息(如 NEW、ESTABLISHED 状态),并维护连接状态数据库。用户可通过 conntrack -L 查看跟踪条目。Netfilter 是内核层实现,而 iptables 是其用户空间配置工具。现代方案如 Cilium 已实现独立于 Netfilter 的连接跟踪机制。该技术本质是网络会话的"

2025-10-14 16:02:35 170

原创 k8s pod的volume实现原理

本文深入解析了 Kubernetes Pod 的核心机制。Pod 是最小调度单元,包含共享网络、存储和生命周期的容器组。关键实现原理包括:通过 pause 容器建立共享命名空间;所有容器共享相同网络IP和端口;通过 Volumes 实现存储共享;具有原子性的生命周期管理(同时启停)。文章还详细介绍了 InitContainer 和普通容器的启动顺序差异,并通过 YAML 示例和代码片段(kubeGenericRuntimeManager.SyncPod)说明 Pod 的创建流程,包括网络设置、容器启动顺序等

2025-10-11 10:07:29 404

原创 kube-prometheus监控服务发现

kube-prometheus 的配置看似复杂,实则遵循模块化设计。其核心服务发现机制通过三大 CRD 实现: ServiceMonitor - 监控 Service 背后的 Pod PodMonitor - 直接监控特定 Pod Probe - 监控外部服务端点 这些资源由 Prometheus Operator 动态转换为 Prometheus 的抓取配置,实现声明式监控管理。文件虽多,但都是围绕基础组件(如 Alertmanager)和监控目标(如 nodeExporter)的标准 K8s 资源组合。

2025-09-30 18:22:25 1063

原创 kube-prometheus setup

本文介绍了使用Helm屏蔽中间过程后,基于jsonnet生成的manifest部署kube-prometheus的准备工作。主要涉及manifests/setup目录下的CRD资源文件和命名空间配置文件,其中以0开头的文件包含各类监控相关的CRD定义,而namespace.yaml则创建了monitoring命名空间并配置了Pod安全策略警告。执行kubectl create -f manifests/setup命令即可将这些资源应用到Kubernetes集群中,为后续部署kube-prometheus组件

2025-09-30 17:38:33 211

原创 kube-prometheus

摘要: kube-prometheus 是 Kubernetes 生态中主流的监控解决方案,集成 Prometheus、Alertmanager、Grafana 等核心组件,通过 Prometheus Operator 实现声明式管理。其优势包括开箱即用的监控规则、自动服务发现(ServiceMonitor)、预置仪表盘及告警功能。部署支持 Jsonnet 或 Helm 方式,提供节点、Pod、API Server 等全方位指标监控。生产环境需注意资源消耗、持久化及高可用配置,适合需要灵活自建监控的场景。官

2025-09-30 17:12:49 1077

原创 Kubernetes 的本质:一个以 API 为中心的“元操作系统”

Kubernetes 本质上是一个以 API 为中心的"元操作系统",其核心在于 API + 控制器模式 + 可扩展性。它通过分层的 API 资源模型(内置资源如 Pods/Services 和自定义资源 CRD)构建了一个统一的控制平面,类比于数据库系统:API 是 SQL,etcd 是存储引擎,CRD 如同用户自定义表。Kubernetes 的控制器模式实现了事件驱动的调谐循环,而 RBAC 则对所有 API 提供精细访问控制。这种架构使 Kubernetes 成为构建和管理分布式系

2025-09-29 15:57:24 777

原创 使用go代码实现判断系统大小端

该代码实现了一个判断系统是否为小端序(little-endian)的Go函数。通过创建一个int16变量(值为1),检查其内存首字节是否为0:若为0则为大端序,否则为小端序。函数利用unsafe.Pointer直接访问内存,通过比较NativeEndian与binary.LittleEndian返回布尔值。该方案是检测系统字节序的经典方法,适用于需要处理二进制数据的场景。

2025-08-07 13:36:09 301

原创 gorm: CRUD

本文介绍了GORM中的CRUD操作,重点讲解Create和Query功能。在Create部分,详细说明了如何创建数据记录,包括Select/Omit指定字段、批量插入、Hooks回调、Map创建、关联数据创建等。还介绍了默认值设置和Upsert冲突处理机制,通过OnConflict实现在主键冲突时的不同更新策略。Query部分简要提及了GORM提供的First/Take/Last等查询方法。全文通过丰富的代码示例展示了GORM框架在数据库操作中的灵活性和强大功能。

2025-08-07 10:45:59 414

原创 gorm:初识gorm

Gorm是一个Go语言开发的ORM库,简化数据库操作,支持多种主流数据库。它通过面向对象方式处理数据,无需直接编写SQL,提供高级查询、事务管理等功能。安装简单,与Gin等框架集成方便。文章演示了使用Docker启动PostgreSQL数据库,并通过Gorm连接、创建表结构及进行CRUD操作的基本流程。Gorm.Model预定义结构体包含ID、时间戳等常用字段,可嵌入自定义模型实现一致性和内置功能。

2025-08-06 16:45:56 441

原创 初识prometheus

Prometheus是云原生时代广泛采用的监控系统,具有多维数据模型、PromQL查询语言、拉取式采集等特点。其核心组件包括Prometheus Server、Exporters、Pushgateway和Alertmanager,支持服务发现、告警管理和可视化集成(如Grafana)。通过下载运行Prometheus并配置监控目标,用户可以快速上手。在Kubernetes环境中,推荐使用kube-prometheus项目实现生产级监控方案。掌握Prometheus及其生态工具已成为云原生监控领域的重要技能。

2025-08-03 22:45:19 818

原创 Ubuntu24.04换源方法

本文介绍了如何为Ubuntu系统配置国内软件源镜像以提升下载速度。首先通过sudo vim命令打开软件源列表文件,然后添加阿里云、清华、中科大和163等国内镜像源配置,每个源都包含标准软件包分类和安全更新通道。配置完成后执行sudo apt update更新软件包索引,即可享受更快的下载体验。

2025-07-30 14:14:44 1011

原创 BPF-CO-RE(一次编译,随处运行)

BPF CO-RE(一次编译,随处运行)是一种现代BPF应用程序开发方法,支持程序无需修改即可跨不同内核版本和配置运行,避免了传统BCC框架需要在目标机器上运行时编译的问题。本文详细介绍了BPF CO-RE的核心功能和libbpf实现,重点讲解了数据读取机制(如bpf_core_read、BPF_CORE_READ等)及其可重定位特性,帮助开发者编写更高效、可移植的BPF程序。文章还区分了字符数组与字符指针的处理差异,并通过实例演示了复杂内核数据结构的读取方法,为开发者提供了实用指导。

2025-07-29 19:53:41 922

原创 深入理解 Go 中的字节序(Endianness)检测代码

高位字节在前,低位字节在后。如0x0102存储为常见于网络协议(如 TCP/IP)定义一个全局变量,它实现了接口(即支持PutUint16Uint16等方法)。后续将根据系统实际字节序赋值为或。功能说明字节序检测通过读取int16=1的内存布局判断系统字节序接口用于后续的二进制数据操作直接访问内存地址,实现底层判断提供友好的 API 查询当前系统是否为小端。

2025-06-11 09:13:44 854

原创 协程如何优雅地退出

技术作用创建可取消的上下文,用于通知协程退出协程监听此通道,以接收退出信号主 goroutine 等待所有子 goroutine 完成退出监听系统中断信号,触发优雅退出流程通过结合context和WaitGroup,我们可以很好地管理协程的生命周期,确保它们在程序退出时能够优雅地关闭。这种方式不仅适用于简单的服务程序,也可以扩展到复杂的微服务架构中,是 Go 开发者必须掌握的核心技能之一。

2025-06-10 09:46:37 775

原创 docker 网络-用户定义网络

最容易使用的用户自定义网络是网桥。定义一个新的网桥非常简单。这里有一个简单的例子……

2025-05-28 10:23:51 875

原创 数据库的并发控制

但对于数据库而言,客户端可以以任意顺序获取锁,因此数据库必须检测并解决死锁,这是一个图问题。在乐观并发控制中,事务在冲突时无法继续,这对应用程序来说并不友好,因为它们只能不断重试。涉及I/O操作,我们可以通过在等待I/O时释放锁来进一步优化,以允许其他事务进入,并让只读事务退出。然而,单个写者仍然不足,因为事务的生命周期由客户端控制,可能任意延长。在现实中,这些步骤可以并行运行,因此需要序列化共享的KV结构。这种方法的用处有限,因为写者之间没有并发能力,且长时间运行的事务会导致读者和写者互相阻塞。

2025-05-05 22:13:42 938

原创 数据库的原子事务

简单的做法是一次迭代并逐个删除键,但这会将整个表读入内存并在删除前反复更新节点,做了一些无用的工作。在我们的案例中,所有内容使用单一的B+树,我们可以实现一个范围删除操作,无需查看即可释放具有特定范围的所有叶节点。:在任何排序的数据中,邻近的键可能共享一个公共前缀。:写时复制在一次更新中从叶节点到根节点复制节点,这对于多键更新来说不是最优的,因为中间树的节点在一个事务内分配、更新一次然后被删除。另一种方法是通过日志实现原子性,在写时复制树中,更新由根指针捕获,而在原地更新中,则需要日志来捕获更新。

2025-05-05 22:11:19 1030

原创 数据库的二级索引

行和列作为KV对。范围查询B+树迭代器。保持顺序的编码。二级索引索引选择。需要一个事务性接口。

2025-05-05 22:08:43 1104

原创 数据库的范围查询

下一步将是添加二级索引,这实际上就是额外的表结构,用于加速某些类型的查询。例如,一个二级索引可以用来快速查找符合特定条件的所有记录,而不需要遍历整个主表。为了确保正确的顺序,正半部分与负半部分交换,这仅仅是翻转最高有效位。我们的B+树处理的是任意字节的字符串键,但列可以是其他类型的数据,如数字,而且键可以是多个列。为了在节点内找到当前键的兄弟键,需要知道当前键的位置。另一种方法是选择一个特殊的序列化格式,使得生成的字节能够反映排序顺序。有两种编码带有长度的字符串的方式,一种是在前面添加长度,这需要解码;

2025-05-05 22:03:53 861

原创 于键值(KV)的表

const (TYPE_BYTES = 1 // 字符串(任意字节)TYPE_INT64 = 2 // 整数;64位有符号TYPE_BYTES表示字符串类型,可以存储任意字节。TYPE_INT64表示整数类型,使用64位有符号整数。// 用户定义的部分Name string // 表名Types []uint32 // 列类型Cols []string // 列名PKeys int // 主键列的数量// 前 `PKeys` 列是主键// 不同表的自动分配的 B 树键前缀。

2025-04-28 00:04:44 924

原创 空闲列表:回收和再利用

高效的内存管理:自由列表能够自我维护,并且支持快速分配和释放页面。与写时复制的兼容性:通过追加写入的方式避免覆盖数据,减少了崩溃恢复的复杂性。灵活性:可以选择外部链表或嵌入式链表,根据性能和存储需求进行权衡。这种设计为数据库系统中的磁盘空间管理提供了一种优雅的解决方案。在这一节中,我们详细讨论了自由列表(Free List)的实现方法。自由列表是一种用于管理未使用页面的数据结构,它通过链表的形式组织页面编号,并支持高效的分配和回收操作。以下是对自由列表实现的逐步分析和总结。自由列表接口设计。

2025-04-24 23:34:01 960

原创 仅追加KV数据库

在本章中,我们将创建一个基于文件的键值存储(KV Store),其核心是一个**写时复制(Copy-on-Write, CoW)B+ 树**。这种设计的目标是实现数据的持久性和原子性。

2025-04-23 00:12:30 1086

原创 B+树删除和测试

通过实现合并逻辑,我们可以优化 B+ 树的存储空间利用率。

2025-04-20 22:46:58 1111

原创 B+树节点与插入操作

所有的B+树节点大小相同,这是为了后续使用自由列表机制。即使当前阶段不处理磁盘数据,一个具体的节点格式仍然是必要的,因为它决定了节点的字节大小以及何时应该分裂一个节点。

2025-04-20 21:57:41 1004

原创 B树的异常恢复

叶节点存储实际数据所有的实际数据都存储在叶节点中,这使得查询路径更加一致和简单。内部节点仅存储引导键内部节点的键用于划分子树的范围,帮助快速定位目标数据所在的叶节点。高度平衡B+树的高度始终保持平衡,确保查找、插入和删除操作的时间复杂度为Ο(log 𝑁)。高效的范围查询由于所有叶节点通过指针链接在一起,范围查询变得非常高效。例如,查询[4, 9)范围内的所有数据时,只需遍历相关的叶节点。空间利用率高每个节点可以存储多个键和子节点,减少了树的高度,从而降低了磁盘访问次数。扩展B树。

2025-04-20 21:56:47 1096

原创 数据库基础-B+树

日志结构存储(如LSM-tree)通过合并操作摊销了更新成本,并通过多级结构进一步优化了写放大效应。高效的写入性能:更新被缓冲在小文件中,避免频繁重写整个数据集。可控的写放大效应:通过多级合并,减少不必要的磁盘写入。灵活性:可以根据具体应用场景调整层级数量,权衡写放大效应和查询性能。B+树B+树适用于需要频繁更新的场景,但在磁盘上的更新效率较低,并且空间复用的问题需要额外处理。LSM-treeLSM-tree 解决了许多上一章提到的挑战,例如如何高效更新基于磁盘的数据结构以及如何复用空间。

2025-04-19 23:00:38 1063

原创 容器技术解析:容器网络

随着云计算的发展,基础资源层的弹性伸缩问题得到了解决。然而,PaaS层应用如何随基础资源层的变化而快速、批量部署成为新的挑战。容器技术应运而生,它不仅提供了轻量级的虚拟化方案,还极大地简化了软件交付流程。本文将探讨容器技术的核心概念及其网络实现机制。

2025-04-17 21:00:54 1003

原创 理解 iptables 的表与链

iptables

2025-04-16 20:07:22 1156 1

原创 从物理机到虚拟化:构建更灵活的数据中心

在当今快速发展的信息技术领域,传统的本地服务器面临着诸多挑战。本文将探讨这些问题,并介绍通过虚拟化技术,特别是 qemu-kvm 和 TUN/TAP 技术,如何解决这些难题,从而为数据中心带来更高的灵活性和效率。

2025-04-16 16:48:40 449

原创 数据库的基本原则

SQL几乎成为了数据库的代名词,但它实际上只是数据库的一个用户界面,并不是数据库的核心。通过KV接口,你可以获取、设置和删除单个键值对,更重要的是,可以以排序顺序列出一系列键。为了实现持久性,可以使用。手机使用SQLite而非其他格式(如JSON)存储数据的原因在于,数据库系统提供了更高级的数据完整性和可靠性保证,尤其是在处理异常情况时。:这是一种常用的组织和存储数据的方式,特别适合于磁盘上的数据结构。以下是一些关键的原则,它们构成了数据库系统的基础,并且可以帮助你通过实践来学习如何构建一个简单的数据库。

2025-04-16 00:03:08 746

原创 TCP 和 UDP 的区别

特性TCPUDP连接方式面向连接无连接可靠性可靠(重传、排序、去重)不可靠(可能丢失或乱序)数据模式字节流数据报拥塞控制有无适用场景文件传输、HTTP 等实时音视频、DNS 等import ("fmt""net"if err!= nil {

2025-04-14 15:37:35 1305

原创 ubuntu24.04LTS安装向日葵解决方案

但是会报libgconf-2-4缺失的问题,而这个库24.04软件源里面是没有的,你需要使用如下命令。输入如下命令安装,将具体版本修改成自己下载的版本。

2025-04-13 11:38:54 1910

原创 go语言内存泄漏的常见形式

例如,有时我们可能会让 Go 程序的主 Goroutine 挂起,以避免程序退出。因为,虽然go中并未对字符串时候共享底层内存块进行规定,但go语言编译器/运行时默认情况下允许字符串共享底层内存块,直到原先的字符串指向的内存被修改才会进行写时复制,这是一个很好的设计,既能节省内存,又能节省CPU资源,但有时也会导致"内存泄漏"。例如如下代码,一旦调用demo就会导致将近1M内存的泄漏,因为s0只使用了50字节,但是会导致1M的内存一直无法被回收,这些内存会一直持续到下次s0被修改的时候才会被释放掉。

2025-04-12 22:43:05 1285

原创 ICMP 协议深度解析

ICMP就像网络的神经系统,通过毫秒级的信号传递维持着互联网的生命体征。理解其工作原理,是掌握网络故障排查的基石。通过接收"需要分片"差错报文(Type=3,Code=4),动态调整数据包大小。源站抑制报文(Type=4)自动触发发送端降速,防止网络拥塞。(互联网控制报文协议)是IP协议体系的"哨兵系统",专用于。利用TTL递减触发ICMP超时报文,绘制完整传输路径。携带故障包"证据",便于源端精准定位问题。通过ICMP请求/应答判断主机可达性。

2025-04-07 19:52:46 616

Sqlite3.pdf

## 使用SQLite创建数据库 **sqlite3_open(const char \*filename, sqlite3 \**ppDb)** 如果 *filename* 参数是 NULL 或 ':memory:',那么 sqlite3_open() 将会在 RAM 中创建一个内存数据库,这只会在 session 的有效时间内持续。 如果文件名 filename 不为 NULL,那么 sqlite3_open() 将使用这个参数值尝试打开数据库文件。如果该名称的文件不存在,sqlite3_open() 将创建一个新的命名为该名称的数据库文件并打开。 简单的来说就是会打开一个数据库文件,文件不存在就会创建一个对应名字的数据库文件

2019-06-30

strtok的赞歌.pdf

标记解析(`Tokenizing`)是最简单也是最常见的解析问题,也就是根据分隔符把一个字符串分割为几个部分。这个定义覆盖了所有这种类型的任务。根据空白分隔符(例如`" \t\n\r"`之一)分割单词。假设有个像`"/usr/include:/usr/local/include:."`这样的路径,在冒号处将其分开,形成单独的目录。根据一个简单的换行分隔符`"\n"`把一个字符串分割为不同的行。可以使用一个配置文件,包含`value = key`格式的行,在这种情况下分隔符就是`"="`。在数据文件中以逗号分隔的值当然是以逗号为分隔符。我们可以采取两个层次的分割来分别进行处理。例如读取一个完整的配置文件,首先根据换行符进行分割,然后在每行根据=进行分割。

2020-04-19

matplotlib

Matplotlib_slides.pdf

2017-01-02

GDB就该这样用

因为执行脚本的时候会自动新启用一个子 bash因此在脚本中设置的ulimit -c unlimited 并不能产生核心转存储文件,需要执行可执行文件之前手动设置一下 ulimit -c unlimited ------ DEBUG 是在linux下使用dbg的记录,一下的文件是在UBUNTU 16.04上验证通过的

2019-05-04

C++基础课程讲义.pdf

面向过程的结构化程序设计方法  设计思路 – 自顶向下、逐步求精。采用模块分解与功能抽象,自顶向下、分而治之。  程序结构: – 按功能划分为若干个基本模块,形成一个树状结构。 – 各模块间的关系尽可能简单,功能上相对独立;每一模块内部均是由顺序 、 选择和循环三种基本结构组成。 – 其模块化实现的具体方法是使用子程序。  优点: 有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发 和维护。  缺点:可重用性差、数据安全性差、难以开发大型软件和图形界面的应用软件 – 把数据和处理数据的过程分离为相互独立的实体。 – 当数据结构改变时,所有相关的处理过程都要进

2020-09-26

DB redis设计与实现

DB redis设计与实现

2023-08-15

DB leveldb实现解析

DB leveldb实现解析

2023-08-15

Getting Started with LevelDB-Andy Dent

Getting Started with LevelDB_Andy Dent 使用具体实例来深入了解和学习levelDB

2023-08-15

Java-Interview-超全集合github上评分最高的jiva面试题

Java-Interview-超全集合github上评分最高的jiva面试题

2023-08-15

Technical Overview of LoRa and LoRaWAN-TÜV Rheinland

Technical Overview of LoRa and LoRaWAN_TÜV Rheinland

2023-08-15

The Robert C. Martin Clean Code Collection - Martin, Robert C-.m

The Robert C. Martin Clean Code Collection - Martin, Robert C_.mobi by The Robert C. Martin Clean Code Collection - Martin, Robert C_.mobi (z-lib.org)

2023-08-15

Alice and Bob: A History Of The World’s Most Famous Couple

Alice and Bob: A History Of The World’s Most Famous Couple

2023-08-07

IPC进程间通信

- IPC对象(消息队列、共享内存和信号量)存在于内核而不是文件系统中,由用户控制释放(用户管理IPC对象的生命周期),不像管道的释放由内核控制。 - IPC对象通过其标识来引用和访问,所有的IPC对象在内核空间中唯一性标识ID,在用户空间中的唯一性标识称为Key. - IPC对象是全局对象,可以通过ipcs,ipcrm等命令来查看或删除 - 每个IPC对象都由get函数创建

2019-05-03

在ubuntu上配置ftp服务器的说明文档,亲测可用(图片)

环境是ubuntu16.04,配置ftp服务器的文档,亲测可用,所以上传分享,也可以方便自己今后再次配置使用(图片)(图片)

2018-08-26

MPU6050模块STM32驱动代码

自己移植的MPU6050程序,采用宏编译将MPU9150的寄存器也加了进去可以同时支持MPU6050和MPU9150两种模块

2017-07-28

ubuntu搭建ftp服务器

自己的环境是ubuntu16.04搭建的ftp环境,测试能够使用,并将相应的资源上传共享也能够方便自己日后使用

2018-08-26

福昕阅读器--linux最新版

福建福昕软件开发股份有限公司(Foxit Software Incorporated)是一家国际化运营的PDF电子文档解决方案提供厂商,是国际PDF协会主要成员、中国版式文档OFD标准制定成员。福昕在亚洲、美洲、欧洲和澳洲设有多家子公司,福昕直接用户已超过5.6亿,企业客户数达10万以上,遍及世界200多个国家和地区。2020年9月8日,福昕软件正式在上交所科创板挂牌上市,股票代码:688095,证券简称:福昕软件。 福昕具有完全自主产权的PDF核心技术,提供文档的生成、转换、显示、编辑、搜索、打印、存储、签章、表单、保护、安全分发管理等涵盖文档生命周期的产品技术与解决方案。 福

2020-11-14

配置samba服务器的配置文件备份

自己使用的是ubuntu16.04与自己的windows主机在在进程资料传输的时候一直使用ftp但是这样做很不方便,于是自己就折腾了一下配置了samba服务器,为了方便以后重装系统之后还需要重新配置就将配置文件进行了copy源文件的路路径和名称是  /etc/samba/smb.conf

2018-08-25

GPS-6M-模块+DMA上传

更改的原子的GPS使用串口3+DMA进行GPS的数据接收

2017-07-28

linux上的可以绘制思维导图的软件

资源是可以安装在linux上的回执思维导图的软件,非常的好用

2018-08-25

最新GeoLite2资源整合.zip

开源的IP地理数据库GeoLiteCity,类似于GeoIPCity,但不如后者精确。免费数据库GeoLite的格式与收费数据库GeoIP相同。任何可以读取GeoIP的代码都可以读取GeoLite。其存储是MaxMind DB格式。 里面放了 GeoLite2-City.mmdb(等同于GeoLite2-Citt.dat 该文件形式已经被wireshark弃用,使用GeoLite2-City.mmdb能完全兼容),国家字段的csv文件以及城市的csv都放到里面,可以打包下载

2020-10-03

dbeaver-ce_7.2.4_amd64最新版本|dbeaver-ce_7.2.4_amd64.deb

已下载 28.2 MB,耗时 12秒 (2,441 kB/s) 正在选中未选择的软件包 ca-certificates-java。 (正在读取数据库 ... 系统当前共安装有 203570 个文件和目录。) 准备解压 .../ca-certificates-java_20190405ubuntu1_all.deb ... 正在解压 ca-certificates-java (20190405ubuntu1) ... 正在选中未选择的软件包 java-common。 准备解压 .../java-common_0.

2020-11-14

自己参考网上的资源配置的vim编译器配置文件

因为ubuntu自带的vim使用的不是很方便,于是就自己动手参考网上的教程,配置了自己的vim环境, 源文件的路径和名称是  /etc/vim/vimrc 要是用户不行执行本用户使用不影响其他用户的配置可以将该文件改名为   .vimrc并放到  ~  目录下面

2018-08-25

2.变量和参数的介绍.md

变量是什么,变量是脚本编程中进行数据表现的一种方法,说白了,变量不过是计算机为了保留数据项,而在内存中分配的一个位置或一组位置的标识或名字。

2020-01-16

vim配色,用于配置viim

vim配色,让自己的vim像IDE一样工作,你想要的配置里面都有,只需要去掉自己不想要的设置就行

2018-08-25

最经典的bash资料

最经典的bash   shell编程资料因为网上买不到书本,就自己打印了一本,真的非常棒

2018-08-25

bsearch.zip

The bsearch() function searches an array of nmemb objects, the initial member of which is pointed to by base, for a member that matches the object pointed to by key. The size of each member of the array is specified by size. The contents of the array should be in ascending sorted order according to the comparison function refer‐ enced by compar. The compar routine is expected to have two arguments which point to the key object and to an array member, in that order, and should return an integer less than, equal to, or greater than zero if the key object is found, respectively, to be less than, to match, or be greater than the array member.

2020-04-18

RFC2616中文翻译-有待改进.odg

- 支持客户/服务器模式。 - 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET、HEAD、 POST。每种方法规定了客户与服务器联系的类型不同。由于 HTTP 协议简单,使得 HTTP 服务器的程序规 模小,因而通信速度很快。 - 灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型由 Content-Type 加以标记。 - 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的 应答后,即断开连接。采用这种方式可以节省传输时间。 - 无状态:HTTP 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着 如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在 服务器不需要先前信息时它的应答就较快。

2020-01-15

pycharm快捷键

python IDE常用快捷键,用于日常查看使用pycharm,包含所有pycharm上的快捷键及其使用方式

2019-05-03

空空如也

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

TA关注的人

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