自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

千里之行

All things are difficult before they are easy

  • 博客(164)
  • 资源 (21)
  • 收藏
  • 关注

原创 使用 Docker 快速搭建 Rust 的 Jupyter Notebook

在 Jupyter notebook 上面运行 Python 程序非常,实际上 Jupyter 也支持其他的内核。我们可以使用 docker 运行一个已经安装好 Rust + Conda + Jupyter Notebook 的的容器。

2022-11-19 20:12:18 616 1

原创 向量检索(二)Faiss 不同索引的性能

faiss 中不同算法构建索引,不同的搜索参数, 搜索的性能和召回率差异巨大。 本文在召回率比较好的情况下 (>0.99),对比常用的 IVF 索引和 HNSW 索引的性能差异

2022-11-08 16:50:53 229

原创 向量检索(一)Faiss 在工业界的应用和常见问题解决

构建 faiss 索引的过程

2022-11-07 21:19:17 462

原创 三个步骤使用 maven release 管理 Java 项目的版本号

在多模块的 maven 项目中,模块的版本号升级,如果使用手工方式管理,很花时间,容易出错。 各个模块直接有依赖关系,更新版本号容易改漏。正确的做法是使用 mvn release 插件。这个插件不需要安装。 只需要在工程的 pom.xml 中设置项目的代码库地址即可。

2022-10-09 08:30:00 296

原创 使用 Harbor 2.6+ 搭建 私有的Docker Registry

Docker 官方的 Registry, Registry 2 的限制比较多,如果不设置证书,不能启用用户名验证。改用 Harbor 搭建了一个 Docker Registry 仓库服务,中间遇到不少问题,总结一下,以备后续参考。

2022-10-08 02:28:58 408

原创 Makefile 精要(常见规则总结-附示例)

Makefile 是 make 工具执行构建(编译应用程序)的规则文件。 make 和 makefile 在 C/C++ 项目中广泛使用, 甚至其他语言的项目中也会用到。缺少一篇简明扼要介绍 make 和 makefile 的文章, Google 结果中排名靠前的官方英文文档很长, 中文的文章翻译不当,翻译的一些内容很难理解。因此简要总结一下 Makefile 的使用(大致 15 分钟左右能够读完并且理解)。

2022-09-12 23:13:56 468

原创 如何用4行 C 代码实现一个跨平台的命令行 mp3 播放器

要实现一个 mp3 音乐播放器,首先要有能够播放音乐的类库,并且支持 mp3 协议。网上没有看到代码简洁清晰的最小命令行的 mp3 播放器的实现。 调研了几个类库之后实现了一个,供需要的朋友参考。

2022-09-09 23:56:48 826

原创 Mac 从源码安装 wxWidgets 报错 fatal error: ‘tiff.h‘ file not found 的解决方案

在从源码编译安装 wxWidgets 的时候,报错:imagtiff.cpp fatal error: 'tiff.h' file not found

2022-09-07 22:37:05 114

原创 报错 Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable 的解决方案

Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY...

2022-09-06 08:30:49 944

原创 pip install kenlm 报错 ‘PyThreadState‘ {aka ‘struct _ts’} has no member named ‘exc_type’

Debian 上面 pip 安装 kenlm 的报错 PyThreadState 的成员找不到

2022-09-04 23:27:46 270

原创 如何在 VS Code 中编译和调试 CMake 项目

通过 VS Code 来调试 C/C++ 的 CMake 项目

2022-08-31 10:59:55 1014

原创 如何配置 Docker 使用代理服务器

因为网络的原因,我们拉取不到 docker 官方的容器, 还有 gcr.io 的容器,github上的容器,因此需要通过代理来拉取容器镜像。使用 Docker 的时候,有3种情况需要使用代理服务器,配置的方法不一样。1.Docker pull 的时候,使用的 Docker 服务的环境变量来设置 dockerd 进程的代理。2.而在 Docker 内部容器运行时,需要设置 宿主机的 docker 的 config.json 文件来设置代理。3.另外在 docker build 镜像的时候,需要设置

2022-06-26 23:05:33 677

原创 搭建一个家用的媒体服务器(支持电影、音乐和电子书)

搭建家用的媒体服务器,用来在不同的设备上面方便得看电影,听音乐,甚至阅读电子书。可以选择使用 Plex,Emby, 或者Jellyfin。 Plex 是商业软件,付费版本的功能更强大,免费版本也能用。 Emby 的早先版本是免费版本,后来商业化之后开源版本不再有更新。 Jellyfin 是基于 Emby 的后续社区开源版本,有持续的更新,且支持硬件解码。 对于我来说, Jellyfin 更重要的功能是,除了电影和音乐的支持,还支持电子书。 支持 PDF,EPUB 格式的电子书。...........

2022-06-26 22:52:03 3057

原创 Spring Boot 应用启动时 java.lang.reflect.InaccessibleObjectException 问题的解决

Spring Boot 的应用启动的时候遇到下面的错误 java.lang.reflect.InaccessibleObjectException: Unable to make private native ... accessible

2022-06-08 18:44:20 5365 2

转载 API 设计最佳实践的思考

阿里妹导读:API 是模块或者子系统之间交互的接口定义。好的系统架构离不开好的 API 设计,而一个设计不够完善的 API 则注定会导致系统的后续发展和维护非常困难。接下来,阿里巴巴研究员谷朴将给出建议,什么样的 API 设计是好的设计?好的设计该如何做?

2022-05-17 19:29:25 252

原创 Flink 流式数据处理(一): Hello Flink

Flink 是一个流式计算引擎。既支持实时的 Streaming 模式对进来的数据进行逐一处理,也适合对批量的数据做 Batch 处理。 一句话,对实时/离线的数据处理做到了批流合一。Flink 对于数据和数据流做了非常好的抽象,在大数据处理里面得到非常广泛的应用。一个典型的场景是对实时输入的数据做分析处理后, 得到分析的结果。以接收从 Socket 传入的数据, 统计每5秒钟不同单词出现的次数为例, 分享如何开发第一个 Flink Job。 以下省去创建 Maven 项目的过程(建议使用

2022-05-17 16:08:35 843

原创 如何在 Mac M1 上使用开源软件运行 Windows 11 ARM Preview

Windows 11 for Mac M1 的正式版本还没有出来。但可以使用 Windows 11 ARM Preview 版本,不需要费用。 只需要注册一下 Windows Insider Program 即可,这个也是不需要费用的。

2022-05-02 00:13:41 1725

原创 Tekton之三:快速理解 Tekton 是如何工作的

Tekton 是云原生环境下面的非常强大的 CICD 产品。 如果你按照 Tekton 的官方文档来学习,使用 Tekton, 可能会跟遇到很多障碍。 Tekton 的技术架构非常优秀,同时Tekton 不太好的产品体验,使得这个优秀工具的应用困难了很多。本文对这些常见的问题做一一的解答。

2022-04-21 17:14:57 1694

原创 Tekton之二:如何使用 Tekton 创建 CICD 流水线

Tekton的文档冗长而复杂, 如何快速在 Tekton 环境中创建一个简单的 Task, 并且运行 Task;如何快速在 Tekton 环境中创建一个 Pipeline, 调用 2个 Task;

2022-04-20 23:49:00 1526

原创 Tekton之一:如何部署起来 Tekton

Tekton 是云原生应用的 CICD 平台。可以非常方便地搭建起来云原生应用的自动化持续集成,持续部署,包含应用打包,应用的镜像构建,镜像发布,测试,helm chart 发布,部署到测试、生产环境。使用 Tekton 可以只部署 tekton pipeline, 通过命令行交互。 也可以部署 tekton pipeline + tekton dashbaord, 可以在 dashbaord 上面进行维护管理。原本安装 tekton pipeline 和 tekton dashboard 到 ku

2022-04-19 19:30:46 1305

原创 CICD 系统 Jenkins & Tekton 对比

Jenkins 的前身是 Hudson,一个诞生于 2005 年的持续集成系统,由于优秀的架构设计和良好的产品体验,Jenkins/Hudson 是第一个被大规模应用的持续集成产品。后面持续集成的概念持续演进,从 CI 演变到了 CICD。 不仅仅是 Continuous Integration(自动化打包,测试,版本发布),还包含 Continuous Delivery(自动化交付,跟进一步,部署到生产环境,自动交付到用户使用)。近几年随着云原生技术的发展,Tekton 应时而生...

2022-04-19 19:01:24 1633

原创 使用 podman 替换 docker

由于 Docker 在架构上的依赖比较多,存在单点故障,且依赖于特权账号运行,需要启动有 docker 服务,才能运行 docker cli。 出现了很多替代 docker,不依赖于特权账号,普通用户可以跑,也不依赖于后台服务的工具,比如 podman, img 等。我的Mac 上面的 Docker Desktop 越来越吃 CPU,跑起来机器非常卡顿, 看了几种不同的方案,podman 跟 docker 的兼容性非常好,可以很容易迁移到 podman上,决定从 docker 迁移到 podman。

2022-03-18 12:47:45 3928

原创 云原生服务的限流方案

限流的目的,是在系统流量过大的时候,对系统进行保护,避免因为流量过大,导致系统不稳定,甚至出现故障。云原生环境下的限流方案比较多。 轻量级的方案可以使用 Bucket4j +Hazelcast/ignite/infinispan 的内存数据结合的方案。 完整的方案可以使用 Sentinel 集群。

2022-02-24 17:00:00 906

原创 语音处理/语音识别基础(六)- 语音的端点检测(EPD/VAD)

「端点检测」(End-point Detection,简称 EPD)的目标是要找到音讯开始和结束的位置,所以又可以称为 Speech Detection 或是 VAD (Voice Activity Detection)。端点检测在音讯处理与识别中,扮演重要的角色,可以基于时域,或者基于频域来做 EPD。

2022-02-24 10:28:26 9169 3

原创 语音处理/语音识别基础(五)- 声音的音量,过零率,音高的计算

如前面第3篇讲到,声音的几个主要特征有音量 Volume, 音高 Pitch, 音色 Timbre。另外有一个重要的特征是过零率 zero crossing rate。当我们在分析声音时,通常以「短时距分析」(Short-term Analysis)为主,因为音讯在短时间内是相对稳定的。我们通常将声音先切成帧(Frame),每一帧长度大约在 20 ms 左右,再根据帧内的信号来进行分析。计算音量(Volume/Intensity/Energe)「音量」代表声音的强度,又称为「响度」、

2022-02-14 09:45:00 5012

原创 语音处理/语音识别基础(四)- 语音文件读取与播放

本文分享如何在 matlab 里面读取 wav 文件,播放 wav 文件,以及如何录制语音文件,保存语音文件。代码中演示了如何改变音频文件的采样率(影响到播放速度),音量(影响到听到的声音大小)。

2022-02-13 22:10:12 2622 1

原创 语音处理/语音识别基础(三)- 声音的特征和声音的能量

前面分享了声音是什么,声音是如何产生,如何传播,以及如何数字化存储的。现在我们来看一下声音有哪些主要的特征(对于人来说),以及常说的声音的能量指的是什么。 本文尝试回答如下问题:1).对于人来说, 声音有哪些主要的特征,会影响人的感知?2).男人和女人,成人和儿童的声音听起来有差异,主要是什么特征起的作用?3).不同乐器听起来有一差异,一听就能判断是什么乐器,主要是什么特征起的作用?4).常常听说的声音的能量指的是什么?5).如何可视化一段音频?当我们在分析声音时,通常以「短时距

2022-02-12 17:56:09 3132

原创 DevOps 能力检查清单

这里可以做关于 devops 能力的测评。 可以针对这些检查清单对自己的产品/团队的 devops 能力进行检查,如果所有的回答都是强烈同意,说明团队的 devops 能力非常强。 反之则有改善的空间。

2022-02-07 18:27:55 607

原创 云原生架构的原则与实践(Google)

以下是 Google 的云原生架构的原则与最佳实践。对于云原生的架构设计,有很好的指导意义。

2022-02-07 15:16:57 393

原创 自动化重复文件清理 Bash 脚本

有很多场景,需要做重复文件的清理,释放占用的磁盘空间。如何能够快速得找到重复文件,并且清理掉重复文件?可以使用 shell 脚本来处理。

2022-01-25 16:43:14 648

原创 阿里云 k8s 上面部署 etcd server 出现 pod has unbound PersistentVolumeClaims 错误信息的解决

AWS/GKE 上面都有默认的 StorageClass,而阿里云的 k8s 上面没有默认的 StorageClass,k8s 不能使用默认的 StorageClass 来创建存储卷,需要手工设置默认的 StorageClass。

2022-01-18 13:08:34 1674

原创 Dockerfile多阶段构建(一个 Dockerfile 导入多个镜像)

Docker 17.05版本以后,支持了多阶段构建,允许一个Dockerfile 中出现多个 FROM 指令。多阶段构建的作用是什么呢?

2022-01-18 10:00:40 5364

原创 K8S 中创建 etcd 集群

单节点 etcd 服务, k8s中启动etcd集群,创建 root 用户, 启用鉴权; 通过命令行客户端访问数据。

2022-01-08 16:56:28 1314

原创 使用 JKube 构建Springboot应用的Docker镜像

JKube 省去了配置 Dockerfile, k8s manifest 的过程。自动化了 docker 镜像的构建。极大提高了 Java 应用云原生环境集成的效率。使用 JKube 来构建 Java 应用的镜像, 只需要引入 kubernetes-maven-plugin 就可以了。

2022-01-07 22:58:06 588

原创 语音处理/语音识别基础(二)- 声音的存储

本文总结声音的存储,对如下问题做出回答。1.声音有哪些属性?2.声音转换成电脑文件(wav/mp3)的过程是怎么样的?3.PCM格式的音频文件和WAV格式文件的内容有什么差异?声音是物体振动产生的声波。声音通过介质(空气、固体、液体)传入到人耳中,带动听小骨振动,经过一系列的神经信号传递后,被人所感知。声音是一种波。物体振动时会使介质(如空气)产生疏密变化,从而形成疏密相间的纵波。频率(音调):声音1秒内周期性变化的次数人耳的听觉范围在20Hz-20kHz。 低频的声音沉

2021-12-26 18:00:15 3539

原创 详解 ServiceAccount -- k8s的服务账号是如何工作的?

Kubernetes 的 Service Account 是如何工作的

2021-12-17 17:45:38 2764

原创 如何签名(Presign)一个AWS S3文件

如何使用 amazon aws sdk 签名(Presign)一个S3文件

2021-12-17 10:11:25 1412

原创 OpenFST 示例 & Mac 编译安装 - 需要 Python >= 2.1.0 的错误消息处理

Openfst 广泛应用于语音识别,语音合成,机器翻译,手写文字识别,模式识别,字符串处理,机器学习,信息提取和检索等等领域。

2021-11-23 13:52:32 2169 2

原创 语音处理/语音识别基础(一)- 声音到底为何可以存储和播放?

最近准备做几个语音的应用。 心中有很多的疑问, 翻阅了大量资料和图书,找到了这些问题的答案。 如果你也对这些问题好奇,这一系列的文章正是为你准备的。声音是如何产生的? 声音是如何转变成数字信号存储在电脑上的?麦克风是如何工作的? 最早的录音设备是谁发明的?是如何发现的? 机器上的音频文件比如 pcm, wav, mp3文件中到底存储了什么样的内容, 里面的数字表示的什么含义? pcm, wav 存储的内容有什么差异? mp3 文件跟 wav 文件的内容有什么差异? 声音文件(mp3/wav等.

2021-11-23 10:25:04 2692

原创 深度学习代码实践(六)- 使用神经网络来逼近任意函数

问题提出在前面 “深度学习代码实践(四)- 从0搭建一个神经网络:感知机与激活函数”的博文分享中,提到,神经网络的本质是:通过参数与激活函数来拟合特征与目标之间的真实函数关系。单层网络只能做线性分类任务,两层神经网络可以无限逼近任意连续函数。这里提到的“用两层神经网络可以无限逼近任意连续函数”。 那么神经网络是不是真的能够逼近任何函数。 我用 Tensorflow 做了一个实验, 以一个已知函数 z = x^2 + y*2 的 80000个随机的 (x,y) 点作为输入,计算得到函数的 z 值.

2021-11-07 18:47:02 2141

13篇影响现代软件设计的经典架构文章

A Field Guide to Boxology - Preliminary Classification of Architectural Styles for Software Systems.pdf An introduction_to_software_arch.pdf DownloadDocumentFile.pdf Hints for Computer System Design - Microsoft.pdf Kruchten 2006 architecture 10 years.pdf On_the_Design_and_Development_of_Program.pdf Programmin_In_Large_versus_In_Small-Kron.pdf Software Architecture in Inductrial Applications.pdf The Coming-of-Age of Software Architecture Research.pdf The_Modular_Structure_of_Complex_Systems.pdf criteria_for_modularization. foundation-for-the-study-of-software-arch The Modular Structure of Complex Systems

2021-12-04

爱丁堡大学ASR-2020-21.zip

爱丁堡大学2020 ASR语音识别课程 PPT

2021-11-23

台大数字语音处理教程课件

台大数字语音处理教程

2021-11-23

语音识别入门教程v1.0 & 论文.zip

1.中科院自动化所的语音识别入门教程v1.0, 经典的语音识别入门课程,1小时入门; 2.几篇经典的语音识别论文(英文);

2021-11-23

QCon-2021-Shanghai.zip

QCon 2021 上海站PPT

2021-10-28

中科大-数据采集与智能仪器-2018.zip

课程分为数据采集与智能仪器两部分。在数据采集部分概要介绍计算机接口技术。 在数据采集部分概要介绍计算机接口技术。讨论模拟信号数字化过程中的采样原理和采样方式、量化与量化误差、孔径时间与系统通过速率等基本概念。 着重讲授数据采集系统中的各个主要环节,各种D/A和A/D的工作原理、实现方式、特点和适用场。

2021-02-16

maxdos.img 启动盘(maxdos 9.3)

maxdos 9.3版本的image 镜像启动盘, 可以在 mac/windows/linux 上面创建可以启动的优盘。 好不容易找到这个镜像文件, 用 N 年前的 ghost 备份救活了我的 windows。

2020-11-29

OOuP极速不完美产品开发之道--两个实践案例

Aha 会议上面 的分享,OOuP极速不完美产品开发之道--两个实践案例。 介绍了面对真实场景的产品需求,如何做需求分享, 技术方案设计,以及如何利用 Python Django 快速开发实现的过程,以及背后的思想。 如果想要了解更多,可以参考极客时间课程: http://gk.link/a/10m3J

2020-10-17

PyCon2016-挖出Django潜能-引爆你的生产力

PyCon2016 上面的 Django 分享, 分享了使用Django 进行快速开发的实践。 掌握这个方法,你可以在 1-2 天内交付一个管理系统。 如果过程中有疑问,或者有更复杂的需求需要实现,可以参考极客时间的 Django 快速开发课程:http://gk.link/a/10m3J

2020-10-17

分布式爬虫与Prometheus + Grafana可视化监控系统设计

PPT里面分享了分布式爬虫的设计,实现了Github 爬虫,使用Redis 作为消息队列的,以及数据可视化,监控的实践。

2020-10-17

北美求职白皮书

北美求职白皮书,本书是 BitTiger 全力打造的北美科技领域求职手册,全书对北美科技公司热门职位做了百 科全书式的精彩阐述,充分展现了各职业的历史背景、发展前景、求职路径、工作职责和进阶 方法。 一、北美互联网领域介绍 1.1 大数据工程师 - Big Data Engineer 1.2 全栈软件工程师 - Full Stack Engineer 1.3 后端工程师 - Backend Engineer 1.4 数据科学家 - Data Scientist 1.5 人工智能工程师 - AI Engineer 1.6 商业分析师 – Business Analyst 1.7 用户体验设计师 – UX Designer 1.8 产品经理 – Product Manager 二、北美求职 2.1 求职时间线 ............................

2019-05-04

2018年中国人才招聘趋势报告

2018年中国人才招聘趋势报告,2018年值得关注的趋势,人才多元化:全球招聘新思维,新的面试形式:重塑面试流程,大数据:企业发展新动力,人工智能:秘密推动力

2019-05-04

大数据实时计算系统实践Flink+Druid配套PPT

大数据实时计算系统实践Flink+Druid配套PPT,1、Flink基本概念与部署,2、DataStreamAPI介绍与实战,3、Window与Time,4、Connector,5、Flink状态管理与恢复,6、Metrics与监控,7、Flink应用案例介绍,8、Druid基本概念以及架构设计,9、Druid数据存储与写入,10、Druid实践介绍

2019-05-04

Firefox插件集合(for firefox 3.6 and/or above)

firefox的插件集合,适用于3.6版本,我用的是3.6.13,大部分在4.0上应该可以使用。部分的插件介绍参考:http://blog.csdn.net/davidullua/archive/2010/01/01/5117558.aspx adblock_plus-1.3.3-fn+fx+sm+tb.xpi colorzilla-2.2.2.xpi DownThemAll-1.1.10.xpi febe-6.3.3.2-fx.xpi firebug-1.6.0.xpi live-http-headers-0.16.xpi nosquint-2.0.5.xpi open_tab_count-1.1-fx.xpi scrapbook-1.3.7-fx.xpi scrapbook_plus-1.8.17.30-fx.xpi scrapbook_plus-1.8.17.31-fx.xpi StatusbarEx-0.2.22.xpi tabcount-1.2.xpi tor-proxy.net-toolbar-0.3.3.xpi

2011-01-03

AutoHotKey的键盘鼠标自动化脚本:自动化对选中文本的google,MSDN,本地文件搜索

选中一个单词/词语, 按Win+G即可进行google搜索,按Win+E即可查找名字中包含文本的文件,按Win+M即可查找指定的API…… 前提是要安装一下AutoHotKey啦。 详情参考: http://blog.csdn.net/davidullua/archive/2010/01/24/5251284.aspx

2010-01-24

iphone/itouch上的offline wikipedia server (touch2wiki server)

iphone/itouch上的offline wikipedia. 安装,并制作和上传数据包后,不需要网络即可通过safari查看离线的维基百科。 更多介绍参考: http://blog.csdn.net/davidullua/category/647271.aspx

2010-01-23

iphone/itouch上的offline wikipedia 的数据包制作工具

iphone itouch 上的离线维基百科的数据库制作工具,就是找遍互联网都找不到的Wiki2TouchUtils_Win_065.rar文件。 说明参考我的blog上的相关文章。 http://blog.csdn.net/davidullua

2010-01-23

iphone/itouch上的offline wikipedia (离线的维基百科) server

iphone/itouch上的offline wikipedia (离线的维基百科), 这个是服务器版。 不用多说了。 安装和离线数据包制作参考: http://blog.csdn.net/davidullua

2010-01-23

Scite Final for Programmer V2010.1.23(开发者的文本编辑器)

开发者的文本编辑器, 支持c,c++,python的源代码语法高亮,函数自动完成,代码的单步调试…… 整合了scite, scite-ru, scite debug等等的功能,是开发人员理想的可替代记事本的理想编辑器。 更多意想不到的功能参考软件包中的readme.txt 2010.1.23版本: 把用户的配置文件放到了软件包的home目录,打开编辑器即最大化窗口。 同时关闭了单词自动完成的功能(Ctrl+Enter可触发单词自动完成),避免打开大的文件时,编辑时运行缓慢。

2010-01-23

Scite Final for Programmer V2010.1.1

scite文本编辑器, 开发人员的终极编辑器,可以用于调试c/c++/python/lua 代码, 支持各种语言的函数自动完成提示(c/c++, python, perl, lua....), 支持单词自动完成, 自动记住编辑器上次打开的文件(类似firefox的remember last session), 高度可配置。 这个文件版本已更新,不建议下载了,请下载V2010.1.23版本: http://download.csdn.net/source/2017305

2010-01-01

12个必不可少的Firefox插件

12个必不可少的Firefox插件,打包到一起,方便使用。虽然一些不是最新的版本,安装后升级即可更新为最新版本。 插件的简单介绍参考: http://blog.csdn.net/davidullua/archive/2010/01/01/5117558.aspx

2010-01-01

空空如也

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

TA关注的人

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