SF
后台 / 嵌入式全栈之路
后台 / 嵌入式全栈之路
注册登录
关注博客
注册登录
主页
关于
RSS
JSON 序列化中的转义和 Unicode 编码
amc
2020-05-31
阅读 2 分钟
16.9k
其实这是我上一篇文章的姊妹篇。在研究 Unicode 颜文字的时候,由于我们的数据传输是通过 JSON 串来完成的,在对颜文字进行转码传输的过程中,也发现了一个问题。解决问题之后,便有了本总结文。
Unicode 颜文字(emoji)格式和 Go 代码处理
amc
2020-03-22
阅读 5 分钟
10.9k
前几天时间测试同学在我们的前端输入了颜文字,之后软件就出 bug 了。借修 bug 机会我花了点时间学习了一下 Unicode 颜文字(emoji)的一些知识。本文记录我对 emoji 的一些认识,并且简单介绍一下我为此而做的一个 Go 语言颜文字提取库的用法。
如何写高大上的 godoc(Go 文档)
amc
2019-11-08
阅读 5 分钟
13.6k
点击徽章,就可以打开 godoc.org 的网页,网页中给出了这个开源项目所对应的 Go 文档。作为 Go 语言的新手,我一度以为,godoc.org 上面的文档是需要开发者上传并审核的——要不然那些文档咋都显得那么专业呢。
Go 语言 time 包常用用法笔记
amc
2019-11-08
阅读 4 分钟
12.3k
Go 的时间操作基本上都用 time 包,比 C 的 time 函数和 timeval 等 struct 好用多了。不过 time 包还是有不少用法和其他语言不同的,所以有必要写个笔记记录一下。
MySQL/MariaDB 语句速查笔记
amc
2019-07-04
阅读 2 分钟
2.6k
平时实际开发的时候,其实并不太依赖 MySQL 作为 关系型数据库 中的 “关系” 这一属性,更多地只是把 MySQL 作为数据存储的介质。因此 MySQL 语句其实很少写,所以本文用于记录一些 MySQL 在常规数据操作中的常用语法,备查。少用或者不用的知识就不列了。
腾讯 Tars Web 管理端用户体系对接
amc
2019-07-03
阅读 4 分钟
4.3k
这段时间一直在基于 Tars 作开发。最近的文章也多是针对 Tars 的一些学习笔记。前面我们搭建了 Tars 基础框架,打开了 Tars web 管理界面进行服务的运维操作。不过读者肯定很快就会发现:这好像不用登录啊,那怎么保证只有有权限的用户才能更改服务呢?
腾讯 Tars-Go 服务获取自定义模版(配置)值
amc
2019-02-25
阅读 5 分钟
5.1k
腾讯 Tars 框架中,有两种可以称之为 “配置” 的地方:其中一个是可以自定义的,在 Tars 管理页面中称为 “服务配置”。在这里,可以按照开发者喜欢的格式上传文件,并且支持配置的热更新。
腾讯 Tars-Go 服务 Hello World——从 HTTP 开始
amc
2019-01-12
阅读 5 分钟
7.8k
本人上一篇文章《腾讯 Tars 基础框架手动搭建》简单介绍了 Tars 框架及其搭建方法。在我们的实际应用中,目前基于 Taf / Tars,主要采用 Node.js 和 C++ 进行开发。对于 C++ 程序员来说,目前最热门的后台开发语言莫过于 Google 的 Go。Tars 框架最新的版本已经把内部的 Taf-Go 开源为 Tars-Go。作为与时俱进的程序员,...
腾讯 Tars 基础框架手动搭建——填掉官方 Guide 的坑
amc
2018-12-22
阅读 11 分钟
8.3k
腾讯 Tars 是腾讯内部使用的 TAF(Tencent Application Framework)的对外开源版,去掉了许多冗杂多余的部分。该框架集开发、运维、微服务、RPC 等为一体。对程序员而言,这就是一个能够快速搭建整个微服务体系的开发框架。这个框架支持基于 C++、Node.js、PHP、Java 等语言开发,最新版本已经支持后台开发语言新贵——Go。
一张图清晰解释微信三方平台获取授权流程
amc
2018-12-17
阅读 3 分钟
9.5k
微信公众平台体系,大家最为熟悉的,一个是公众号,另一个就是小程序。如果需要使用公众号的高级功能,那么大家首先想到的就是自组开发团队来干这些活儿。绝大多数情况下,公众号运营方会把这些工作外包出去;但是外包出去之后会有一个风险:账号的所有权总不能外包出去吧,万一有风险,我能够把外包工作收回。
图文并茂解释内存池原理
amc
2018-11-13
阅读 4 分钟
7.3k
在 C 语言的动态申请内存技术中,相比起 alloc/free 系统调用,内存池(memory pool)是与现在系统中请求一大片连续的内存空间,然后在运行时根据实际需要分配出去的技术。使用内存池的优点有:
XML 语法速查笔记
amc
2018-10-11
阅读 3 分钟
2.6k
相比起 Json,XML 是一种相对古老和复杂、但功能更加强大的数据存储/传输格式。也因为其复杂,有一些语法需要记录一下,在使用多种语言进行 XML 操作的时候备查。
在 libevent 中使用 MariaDB(MySQL)
amc
2018-10-02
阅读 4 分钟
5.8k
在之前我翻译的官方文档中提到了 MariaDB 提供了对异步 I/O 的支持。那篇文章是一个比较简要的介绍。不过实际适配中,官方也提供了一个完整适配 libevent 的示例代码。本文算是对我上述示例代码的阅读笔记吧。
在 C/C++ 异步 I/O 中使用 MariaDB 的非阻塞接口
amc
2018-09-14
阅读 5 分钟
6.2k
对 C/C++,MySQL 提供的库传统上都是阻塞操作,因此适合多线程 / 进程服务器架构编程。但是如果用 C/C++ 编写服务器,往往对性能会有极致要求,此时采用非阻塞的异步 I/O 才是更好的框架。
基于汇编的 C/C++ 协程 - 实现
amc
2018-08-01
阅读 8 分钟
8.2k
基于汇编的 C/C++ 协程(用于服务器),我之前已经在下面两篇文章中详细阐述了原理: 基于汇编的 C/C++ 协程 - 背景知识 基于汇编的 C/C++ 协程 - 切换上下文 而这篇文章,就终于是 C/C++ 协程的实现了。正如上面两篇文章所说的,我们需要实现的目标有两个: 有同步式服务器编程的顺序思路,便于功能设计和代码调试——我...
菜鸟的 GIS 基本概念学习
amc
2018-07-18
阅读 5 分钟
16.1k
因为一些缘故,工作中了解了一下 GIS。本文算是菜鸟的学习笔记吧,如有错误,衷心希望专业的 GIS 同学指正~ 本文章采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。 原文最早发布于:[链接],同为本人的专栏。 Reference 地理信息系统导论(原著第八版) ArcGIS for Server入门教程 用 ArcGIS绘...
Python 调用 C 动态链接库,包括结构体参数、回调函数等
amc
2018-02-23
阅读 6 分钟
18.3k
研究了一些资料,采用 python 的 ctypes 来完成这项工作。已经验证通过,本文记录一下适配流程。验证采用 cpp 来设计,不过暂时还没有涉及类的内容。以后如果需要再补足。
正则表达式速查笔记
amc
2018-02-20
阅读 2 分钟
3.4k
和之前我的 Makefile 速查笔记 一样,正则表达式也是相对少用,但是一旦用起来也挺复杂的知识。所以本文记录一下正则表达式的常用要点,备查。 本文地址:[链接] 参考资料 《学习正则表达式》,Michael Fitzgerald regexper:这是个图形化的分析器,首先推荐 regexpal.com regexr.com 正则表达式基本 匹配单个字符 匹配...
基于汇编的 C/C++ 协程 - 切换上下文
amc
2018-02-06
阅读 5 分钟
8.8k
其中调度,其实在技术实现上与其他的线程、进程调度没有什么特别的差异,同时也要看具体业务的需求。限制 C/C++ 协程应用的最大技术条件是上下文切换。理由在前文也说了。
Linux PostgreSQL 和 PostGIS 安装和使用
amc
2018-02-05
阅读 5 分钟
14.3k
最近研究基于 GeoServer 的开源 GIS 框架,其中构建 GIS database 需要使用 PostgreSQL + PostGIS 插件。花了些时间学习,这里记录一下。如有错误,感谢不吝指正~~
基于汇编的 C/C++ 协程 - 背景知识
amc
2018-01-31
阅读 4 分钟
7.9k
近几年来,协程在 C/C++ 服务器中的解决方案开始涌现。本文主要阐述以汇编实现上下文切换的协程方案,并且说明其在异步开发模式中的应用。 本文地址:[链接] 首先,我们来看一下 C/C++ 服务器开发的历史。 参考资料 协程 - 维基百科,自由的百科全书 异步IO - 维基百科,自由的百科全书 基于 epoll 设计类似 libevent 的...
Makefile 速查笔记
amc
2017-11-21
阅读 6 分钟
8.6k
做 Linux C++,一个稳定的工程,Makefile 是很少改动的。但是如果需要修改的时候,Makefile 的语法和用法一时半会就回忆不出来(原谅我记忆力差……)。在此把自己以前的 Makefile 学习笔记记录一下吧,也作为分享。本文假设读者已经懂得了 Makefile,因此主要是作为备忘和速查用。
高性能磁盘 I/O 开发学习笔记 -- 软件手段篇
amc
2017-11-02
阅读 4 分钟
10k
上一篇文章我们讲了一下硬盘(磁盘 & SSD)在硬件上的一些限制,总结了两个优化硬盘 I/O 的方向。本篇我们就从 Linux 软件开发的角度,讲一下在软件设计中我们应该如何提高硬盘 I/O。
高性能磁盘 I/O 开发学习笔记 -- 硬件原理篇
amc
2017-10-27
阅读 5 分钟
6.9k
曾经做嵌入式开发的我,现在做服务器开发,很多思路要转变。今天学习了服务器高性能IO设计,同时自己也还发散开去学习了其他的一些参考资料,顺便结合自己已有的一些知识,做为自己的学习笔记,总结和记录一下吧~~
研究一下 fork 的原理,并且还有 vfork 的一些使用场景
amc
2017-07-29
阅读 2 分钟
8.1k
笔者一直试图从最基本的原理上去理解(甚至尝试原理性设计)一个服务器的架构,为此提出了一些问题。此外,笔者对 异步 I/O 也有不少学习。从几个方面学习了 vfork() 的用法。
在 C++ 中实现 super 关键字
amc
2017-07-08
阅读 3 分钟
14.6k
我的工作历程是 C ==> Objective-C ==> C++,所以我的 OOP 习惯很大程度上是来自于 Objective-C 的。玩 C++ 的时候忽然就很不习惯了:因为没有 super 啊。于是就有了这篇文章。
Google Protocol Buffer(protoc, protobuf, pb)学习笔记
amc
2017-07-07
阅读 4 分钟
25.5k
以前玩 C,Json、XML 什么的看多了,现在开始玩 C++,才发现我了解的世界太小了——原来 C++ 届还有 Google Protocol Buffers 这么好的东西。果然在 PC 上做开发真是好,不用考虑可执行程序的 size,可以放心放肆地用 C++。
基于 epoll 设计类似 libevent 的异步 I/O 库 - 接口
amc
2017-06-13
阅读 4 分钟
6.7k
这篇文章可以算是我在 GitHub 上一个工程的设计概要了。简要说明了该工程的设计思路以及技术要点。 本文章纯原创,没有参考资料。不过有设计过程中记录下的相关文章: 使用 pipe 在程序正文中捕获和处理信号 本文地址:[链接] 工程简介 基本原理 总所周知,在 Linux 中实现异步 I/O,适用的系统 API 就是 epoll。这里主...
DNS 报文结构和个人 DNS 解析代码实现——解决 getaddrinfo() 阻塞问题
amc
2017-05-10
阅读 5 分钟
23.8k
实际应用中发现一个问题,在某些国家/ 地区的某些 ISP 提供的网络中,程序在请求 DNS 以连接一些服务器的时候,有时候会因为 ISP 的 DNS 递归查询太慢,导致设备端认为 DNS 超时了,无法获取服务器 IP。
使用 pipe 在程序正文中捕获和处理信号
amc
2017-05-03
阅读 2 分钟
4.8k
我的上一篇文章研究了一下如何在程序的正文(而不是信号处理函数)中捕获和处理信号。当时用的方案是 sigprocmask()。但那个方法理论上是可能漏掉一些信号的。
1
2
(current)
3
4
下一页
上一页
2
(current)
下一页