自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Tsunaou的试验场

一名计科学生的博客试点

  • 博客(26)
  • 收藏
  • 关注

原创 Docker 学习笔记

整理文件时发现的,几年前的 Docker 学习笔记。

2023-04-10 21:30:40 1014

原创 秋招必备:C++ OJ技巧整理(输入输出)

1. 输入包含空格字符串并分割#include <iostream>#include <string> // gelineusing namespace std;int main() { string input; getline(cin, input); auto token = strtok(input.data(), " "); while(token != nullptr) { string word = str

2022-03-14 17:57:11 1531

原创 Docker中apt-update遇到Temporary failure resolving ‘deb.debian.org‘的解决方法

问题描述最近运行一个docker服务,结果在apt-get update的时候出现了如下异常,换了sources.list中的源后也还是没有效果。Err:1 http://deb.debian.org/debian buster/main amd64 perl-base amd64 5.28.1-6+deb10u1 Temporary failure resolving 'deb.debian.org'Ign:2 http://deb.debian.org/debian buster/main a

2021-11-18 17:24:29 9809 4

原创 LeetCode 704. 二分查找

题目描述给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1提示:你可以假设

2021-09-06 11:54:14 167

原创 LeetCode 470 用Rand7()实现Rand10()

470. 用 Rand7() 实现 Rand10()题目描述已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数。不要使用系统的 Math.random() 方法。示例 1:输入: 1输出: [7]示例 2:输入: 2输出: [8,4]示例 3:输入: 3输出: [8,1,10]提示:rand7 已定义。传入参数: n 表示 rand10 的调用次数。进阶:rand7()调用次数的

2021-09-05 12:26:06 110

原创 WiredTiger 编程入门(以Java为例)

前文最近由于一些业务需求需要使用Java调用WiredTiger的API,故开一贴来记录一下WiredTiger的一些设计以及其Java API的应用。由于其Java API是通过SWIG生成的, 所以也相当于是学习C风格的API,真可谓是一举两得。基本概念介绍WiredTiger程序通常通过以下类来访问和管理程序Connection表示与数据库的连接。大部分应用程序只会为每个进程打开一个与数据库的连接。Connection中的所有方法都是线程安全的。 Session表示数据库操作执行所在

2021-08-23 20:12:56 202

原创 Linux系统下WiredTiger的构建与安装

WiredTiger简介WiredTiger是分布式文档型通用数据库MongoDB的默认存储引擎。作为一个优秀的单机数据库存储引擎,其有着许多良好的特性,例如支持基于B树的索引,支持行存储与列存储,以及提供ACID级别的事务等等。为了对其进行更为深入的探究,笔者决定在Ubuntu系统上进行WiredTiger的安装。实际上这已经是笔者第三次安装WiredTiger了。第一次是在Linux下安装WiredTiger10.0.0,第二次是在Windows系统下安装WiredTiger10.0.0,可以看

2021-08-22 17:02:44 420

原创 Windows系统下WiredTiger的构建与安装

WiredTiger简介WiredTiger是分布式文档型通用数据库MongoDB的默认存储引擎。作为一个优秀的单机数据库存储引擎,其有着许多良好的特性,例如支持基于B树的索引,支持行存储与列存储,以及提供ACID级别的事务等等。为了对其进行更为深入的探究,鉴于Linux版本的已经在ubuntu下安装,但是目前电脑不在手边,因此笔者决定在windows下进行WiredTiger的安装。PS:实际上当初Linux下安装WiredTiger时,其动态链接与静态库问题着实让我吃了不少苦头,所以说基础知识很

2021-08-22 17:01:30 1031 1

原创 C++线程间的数据共享:互斥量与锁的使用

介绍与引入这是阅读C++ Concurrency in Action 2rd edition的笔记,本文关注C++中的数据共享问题。首先需要明确的一点是,数据共享问题的来源在于写操作。如果所有的线程都只读,那么就不会有资源冲突的问题。使用互斥量 Protecting shared data with mutexes在C++中,可以通过构造一个std::mutex的互斥量实例来创建互斥锁,通过lock()和unlock上锁与解锁。但是这种方法并不推荐,因为每次上锁都要伴随着一次解锁,即便是代码出现

2021-07-22 16:06:50 494

原创 C++中的Lambda函数

介绍与引入最近在阅读C++ Concurrency in Action 2rd edition 以学习C++的多线程特性,发现许多地方都使用了Lambda函数,因此就附录里的内容做一些笔记。Lambda函数是C++11标准中新增的一个特性,允许在需要使用的时候才进行定义,这种语法糖的特性大大简化了代码复杂度,在某些时候特别有用。其语义可以用来快速地表示可访问的变量,而非使用类中函数来对成员变量进行捕获。基本的Lambda表达式Lambda表达式最简单的形式,便是一个self-containe

2021-07-21 16:08:29 1981

原创 C++ most vexing parse(C++最令人烦恼的解析)

介绍与引入最近在阅读C++ Concurrency in Action 2rd edition,在里面看到一个很有意思的说法叫做most vexing parse,是有关于C++中一种违反直觉的语法歧义解析现象。在某些情况下,C++语法解析器无法区分以下二者The creation of an object parameter,即对象参数的创建 The specification of a function's type,即函数类型的规约。发生歧义时,编译器解释为第2种情况,该现象也被称为mos

2021-07-20 21:22:55 231

原创 win10中Anaconda-Navigator一直显示loading applications的解决方法

花了很多时间研究,最终在一个大神的回答中找到了解决方法,真的太强了。解决方法,将anaconda3\Lib\site-packages\anaconda_navigator\api\conda_api.py中的data = yaml.load(f) 改为 data = yaml.safeload(f)。在此记录一下,参考自大神的回答。如果问题得到解决的多给大神点个赞...

2021-05-19 15:48:31 1639 5

原创 MongoDB 4.2 单机分片测试集群搭建

MongoDB 4.2 单机分片测试集群搭建本集群用于测试,这里关于kill后重启增加安全验证的可以忽略。涉及到root和安全验证容易出一些额外的bug,个人建议测试时直接略过,在内网数据安全也得以保证1 安装背景1.1 实验环境1.1.1 分片集群架构图1.1.2 实验主机主机IPUbuntu 20.04 LTS114.212.84.1751.1.3 端口规划服务器端口route127017conf129010conf2

2021-03-08 17:29:20 207

原创 MIT 6.824 Lab2 Raft实现

1. 综述在本次实验中,我使用Go语言在给定框架上实现了简单的Raft协议,通过实现包括节点选举、心跳机制、日志追加和持久化等内容,完成了Part1,Part2和Part3。项目托管在github上,地址为NJU-DisSys-2020。当实验DDL过了后我将开源。2. 相关定义根据Raft的原始论文以及扩展版论文,我定义了如下常量和数据结构。2.1 常量定义2.1.1 状态常量首先是定义Raft中Sever的三种状态,分别是领导者(Leader)跟随者(Follower)候选者(Can

2021-03-04 13:49:34 1300 2

原创 MongoDB日志mongod.log过大的解决方法

近日在用MongoDB进行一些实验,部署了一个集群测试稳定性的集群,结果运行了一段时间后40G的硬盘都被日志占满了,一开始还真不知道怎么解决。查阅资料后,发现MongoDB官方有给出一个解决方案,简言之就是将原来的日志分割并重定向到一个新的文件,此时旧的日志可以迁移到其他位置或者直接删除,十分方便。具体操作便是如下命令mongos> db.adminCommand({logRotate:1})执行后将会出现带有日期后缀的新日志,那便是原来的日志。-rw------- 1 root r

2021-03-03 20:12:19 2395 1

原创 在Ubuntu20.04编译mongodb内核源码笔记

0.下载指定分支在mongo:github下克隆v4.2版本的分支1. 相关依赖工具安装1.1 编译器能够编译C++17的现代C++编译器GCC 8.2 or newerClang 7.0 or newer输入如下命令即可查看编译器版本$ gcc -v$ clang -v1.2 libcurl在LInux环境下,需要libcurl库和头文件。Ubuntu/Debian 下, libcurl-dev 由以下3个包提供,安装任意一个即可libcurl4-openssl-devl

2021-03-02 12:58:05 414

原创 Ubuntu 18.04下的Go语言学习笔记(一)Go的下载安装与模块调用

最近一门课程实验需要用到Go语言,久闻其名,为了减少以后配置的坑,特地记了一些笔记。不定期更新。1. Go的下载与安装在下载页选择合适的版本下载。这里我选择的是go1.15.6.linux-amd64.tar.gz稳定版。在root权限下解压sudo tar -C /usr/local -xzf go1.15.6.linux-amd64.tar.gz将/usr/local/go/bin添加到环境变量中。增加到$HOME/.profile或者 /etc/profile (系统全局)。对于使

2020-12-11 23:13:36 358

原创 Windows双系统下Ubuntu只读文件系统解决方法

如果有碰到类似问题,可以回忆一下是如何进入Ubuntu系统的。双系统进入Ubuntu有2个方式:开机直接进入(即关机模式下进入)从Windows重启进入经过测试,只有从Windows下重启进入时会避免发生只读文件系统的错误,推测是通过Windows重启后将写权限转接。...

2020-12-07 19:33:32 956

原创 Ubuntu 20.04 高分屏设置(持续更新)

Ubuntu 20.04 高分屏设置(持续更新)个人觉得Ubuntu20.04的浮点效果并不好,鼠标给人感觉不跟手,因此便尝试着修改下设置1. Wine-WeChat和Wine-QQ修改Wine设置中 显示 的屏幕分辨率即可。env WINEPREFIX="$HOME/.deepinwine/Deepin-WeChat" /usr/bin/deepin-wine winecfgenv WINEPREFIX="$HOME/.deepinwine/Deepin-WeChat" /usr/bin/d

2020-09-22 12:00:40 6618

原创 Katacoda Kubernetes系列场景一:Launch Single Node Kubernetes Cluster

最近在学习Kubernetes(k8s)的使用,发现了一个好网站katacoda,可以在浏览器的沙盒环境中学习k8s的使用和概念,真的是非常友好了。因此做下笔记,以后可以回顾。这是该系列入门的第一篇,使用的是Minikube。Minikube可以在本地虚拟机中运行一个单节点的Kubernetes集群,以便用户学习。更多可以关注 https://github.com/kubernetes/minikube。Step 1 启动Minikube在katacoda中,Minikube已经被预先安装并且被配置好

2020-08-03 23:05:33 362

原创 Katacoda Docker系列场景五:Optimising Dockerfile with OnBuild

本例子中主要介绍如何使用OnBuild命令优化DockerfileStep 1 基础镜像尽管Dockerfile自顶向下执行,我们可以指定一条命令在之后才运行,当镜像作为其他镜像的基础时。因此可以延缓指令的执行。例如在上一期的内容中,可以有这样的DockerfileFROM node:7RUN mkdir -p /usr/src/appWORKDIR /usr/src/appONBUILD COPY package.json /usr/src/app/ONBUILD RUN npm insta

2020-08-03 22:14:29 138

原创 Katacoda Docker系列场景四:Dockerizing Node.js applications

本例子中主要介绍如何在容器中部署一个Node.js的应用Step1 基础镜像FROM node:10-alpineRUN mkdir -p /src/appWORKDIR /src/app使用WORKDIR指定工作目录Step2 NPM的安装为了减少构建时间,Docker将执行Dokcerfile的每一行结果都缓存在文件中。如果Dockerfile发生变化,这部分缓存将失效。我们将运行npm install的缓存结果拷贝到容器中以加快构建。COPY package.json /src/

2020-08-03 22:13:42 121

原创 Katacoda Docker系列场景三:Building Container Images

本例子中主要介绍如何书写Dockerfile并且构建运行镜像。Step1 基础镜像所有的Docker镜像都来源于基础镜像,是应用的基础。在这个例子中,在部署静态HTML文件前,需要用NGINX,因此选择NGINX作为基础镜像。首先在Dockerfile中使用如下语句指定基础镜像FROM <image-name>:<tag>本例子中使用的便是FROM nginx:1.11-alpine当然,可以使用latest而非具体的版本,但是指定具体版本会让你更有安全感并且方便

2020-07-29 01:00:44 161

原创 Katacoda Docker系列场景二:Deploy Static HTML Website as Container

本次将基于Nginx的Alpine版本使用Docker配置一个简单的web服务器Step1 创建DockerfileDocker镜像的构建基于基础镜像,基础镜像包括应用程序所需的依赖,例如JVM。基础镜像被Dockerfile中的一条指令所定义,实际上整个Docker镜像都是基于Dockerfile所构建的,Dockerfile是一组描述如何部署应用的指令序列。本例中,我们使用Nginx的Alpine版本。这提供了Linux Alpine发行版上配置的web服务器。FROM nginx:alpin

2020-07-29 00:36:13 177 1

原创 Katacoda Docker系列场景一:Deploying Your First Docker Container

Katacoda Docker系列场景一:Deploying Your First Docker Container最近在重温Docker的使用,发现了一个好网站katacoda,可以在浏览器的沙盒环境中学习Docker的使用和概念,真的是非常友好了。因此做下笔记,以后可以回顾。Step1 运行Docker CLI的run命令基于Docker镜像启动一个容器,命令结构如下:docker run <options> <image-name> 默认情况下,在前台运行。如果想要

2020-07-29 00:13:46 168

原创 Linux QQ 解决闪退的方法

删除掉配置文件即可rm -r ~/.config/tencent-qq

2020-05-03 12:45:37 9404 5

空空如也

空空如也

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

TA关注的人

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