- 博客(766)
- 资源 (10)
- 收藏
- 关注
原创 Python格式化工具yapf
官网:https://github.com/google/yapf安装:pip3 install yapf参数:-p:使用多线程–style:google保持80列换行,indent_width,前面4个空格-i:直接在原文件修改,inplace操作-r:递归的所有文件都进行该操作./:当前目录,也可以为具体文件,./test.py例子:yapf -p --style='{based_on_style: google, indent_width: 4}' -i -r ./...
2022-03-05 14:12:54
731
原创 go语言工具箱
1.打印数据的类型package mainimport ( "fmt" "reflect")func main() { str2 := "Go语言" fmt.Println(reflect.TypeOf(str2[2]).Kind()) // uint8}reflect.TypeOf().Kind() 可以知道某个变量的类型2. 字典(键值对,map)map 类似于 java 的 HashMap,Python的字典(dict),是一种存储键值对(Key-Value)的
2022-02-26 22:54:26
520
原创 Ubuntu20.04中安装MySQL 5.7.x
默认情况下,Ubuntu20.04安装MySQL的版本为8.0。但8.0更加严格的加密规则,使得一些配置难以实现,下面就来为大家介绍在ubuntu20.04中怎么安装MySQL5.7.x。一、下载安装包(这里以5.7.32为例)官方下载地址:https://downloads.mysql.com/archives/community/二、解压安装包到下载安装包的路径解压安装包tar -xzf mysql-server_5.7.32-1ubuntu18.04_amd64.deb-bundle.ta
2022-02-26 15:59:02
4119
2
原创 ubuntu完全卸载mysql
首先用dpkg --list|grep mysql查看自己的mysql有哪些依赖先卸载sudo apt-get remove mysql-common然后:sudo apt-get autoremove --purge mysql-server-8.0 再用dpkg --list|grep mysql查看,还剩什么就卸载什么最后清楚残留数据:dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P...
2022-02-26 15:31:07
1869
原创 Linux查看物理CPU个数、核数、逻辑CPU个数
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数# 查看物理CPU个数cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l# 查看每个物理CPU中core的个数(即核数)cat /proc/cpuinfo| grep "cpu cores"| uniq# 查看逻辑CPU的个数cat /proc/cpuinfo| grep "processor
2022-02-21 00:09:36
666
原创 修改docker 默认镜像存储路径
Docker默认安装的情况下,会使用 /var/lib/docker/ 目录作为存储目录,用以存放拉取的镜像和创建的容器等。不过由于此目录一般都位于系统盘,遇到系统盘比较小,而镜像和容器多了后就容易尴尬,这里说明一下如何修改 Docker 的存储目录。docker info这里我的机器的docker存储目录已经被我修改了,默认的应该是/var/lib/docker官方文档的修改办法是编辑 /etc...
2022-02-20 23:49:36
2063
原创 从零构建包含mysql、redis、python、go等基础软件的Ubuntu Docker镜像
构建包含mysql、redis、python、go等基础软件的Docker镜像的DockerfileFROM ubuntu as builderWORKDIR /code# 修改ubuntu 为国内下载源RUN echo "deb [trusted=yes] http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse" > /etc/apt/sources.listRUN e
2022-02-20 23:43:08
1065
原创 apt-get update “the following signatures couldn’t be verified because the public key is not avail
Fix apt-get update “the following signatures couldn’t be verified because the public key is not available”将系统的镜像环境切换成清华大学镜像源ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror执行命令apt-get update报错。解决办法:apt-key adv --keys..
2022-02-08 10:50:52
1744
原创 修改docker 默认存储路径
Docker 默认安装的情况下,会使用 /var/lib/docker/ 目录作为存储目录,用以存放拉取的镜像和创建的容器等。不过由于此目录一般都位于系统盘,遇到系统盘比较小,而镜像和容器多了后就容易尴尬,这里说明一下如何修改 Docker 的存储目录。docker info这里我的机器的docker存储目录已经被我修改了,默认的应该是/var/lib/docker官方文档的修改办法是编辑 /etc/docker/daemon.json 文件:vi /etc/docker/daemon.json
2022-01-22 12:50:54
1260
原创 hive 安装
https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+StartedSpark InstallationFollow instructions to install Spark:YARN Mode: http://spark.apache.org/docs/latest/running-on-yarn.htmlStandalone Mode: https://spark.apache.org/docs/la
2022-01-19 01:04:08
1562
原创 kerberos 安装配置
https://www.jianshu.com/p/e01a01eedd30https://ieevee.com/tech/2016/06/07/kerberos-1.html
2022-01-19 01:00:54
187
转载 docker容期间通信方法
Docker容器间的通信方式根据媒介可以分为:volume共享通信、网络通信等;根据通信范围也可以分为:同主机通信和跨主机通信等。而本文主要针对容器间的网络通信方法进行讨论。Docker的网络驱动模型Docker的网络驱动模型分类:bridge:Docker中默认的网络驱动模型,在启动容器时如果不指定则默认为此驱动类型;host:打破Docker容器与宿主机之间的网络隔离,直接使用宿主机的网络环境,该模型仅适用于Docker17.6及以上版本;overlay:可以连接多个docker守护进程
2022-01-19 00:52:03
1330
原创 docker启动container
拉取镜像docker pull ubuntu:latest启动 containerdocker run -idt --net host --name container1 --privileged=true -v /data1:/data1 ubuntu:latest /bin/bash
2022-01-19 00:33:39
2776
原创 docker 配置加速镜像站
DaoCloud提供Docker Hub Mirror服务。用户可以进入Docker Hub Mirror注册入口注册。在进入控制台页面后直接点击 启动你的加速器后,您即可得到一个Mirror的地址,将该地址配置在Docker Daemon的启动脚本中,重启Docker Daemon即可使得Docker Hub Mirror配置生效。下文分四种不同的操作系统,来详细阐述如歌配置Docker Hub Mirror地址。Ubuntu安装或升级DockerDocker 1.3.2版本以上才支持Docker
2022-01-19 00:24:20
364
原创 docker 创建用户组、将用户加入docker用户组
cat /etc/passwd 可以查看所有用户的列表w 可以查看当前活跃的用户列表cat /etc/group 查看用户组在/etc/group 中的每条记录分四个字段:第一字段:用户组名称;第二字段:用户组密码;第三字段:GID第四字段:用户列表,每个用户之间用逗号(,)号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名;Docker daemon 绑定的是 Unix socket,这就导致 docker 需要 root 权限才能使用,但这十分麻烦,因为其他用户
2022-01-19 00:04:43
4118
原创 tensorflow XLA 笔记
笔记特定op关闭 XLA特定op关闭 XLAfrom tensorflow.python.compiler.xla import jit with jit.experimental_jit_scope(compile_ops=False): a = tf.add(1, 2)
2021-12-27 22:55:38
1212
原创 vscode 第三方python库自动提示
“command + shift + P“ 按键打开第一个 settings.json在settings.json 里面增加下面一行, xxx 替换成具体的python包的路径,如果不知道python包的路径,可以通过 下面的命令拿到python -c 'import site; print(site.getsitepackages())'settings.json 增加 "python.autoComplete.extraPaths": [ "/xxxx/python3.6/
2021-12-26 12:01:56
1678
原创 protobuf int类型变长存储 varint32 和 varint64
VarInt32 编码VarInt32 (vary int 32),即:长度可变的 32 为整型类型。一般来说,int 类型的长度固定为 32 字节。但 VarInt32 类型的数据长度是不固定的,VarInt32 中每个字节的最高位有特殊的含义。如果最高位为 1 代表下一个字节也是该数字的一部分。因此,表示一个整型数字最少用 1 个字节,最多用 5 个字节表示。如果某个系统中大部分数字需要 >= 4 字节才能表示,那其实并不适合用 VarInt32 来编码。下面以一个例子解释 VarInt32
2021-12-17 01:58:05
1964
原创 c++ RVO
RVO,是Return Value Optimization。这是在函数返回返回值的时候编译器所做出的优化,是C++11标准的一部分,C++11称之为copy elision。在第一次编写的函数里面,编译器明确知道函数会返回哪一个局部对象,那么编译器会把存储这个局部对象的地址和存储返回值临时对象的地址进行复用,也就是说避免了从局部对象到临时对象的拷贝操作。这就是RVO。实验实验1#include <iostream>struct Foo { Foo() { ..
2021-11-26 00:38:26
1199
原创 homebrew 切换回国内的源头
国外常用仓库慢的经典解决办法,自然是临时将该仓库临时源设置为国内的镜像。一般使用中科大的:## 更新 homebrew-caskcd "$(brew --repo)"/Library/Taps/homebrew/homebrew-cask# 更换源git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git# 更新,由于已经 cd 到相应文件夹了,因此不需要通过 -C 指定路径了git fetch --un
2021-11-13 20:00:13
789
原创 paramiko 远程连接ssh
ssh是一个协议,OpenSSH是其中一个开源实现,paramiko是Python的一个库,实现了SSHv2协议(底层使用cryptography)。有了Paramiko以后,我们就可以在Python代码中直接使用SSH协议对远程服务器执行操作,而不是通过ssh命令对远程服务器进行操作。由于paramiko属于第三方库,所以需要使用如下命令先行安装。pip install paramikoparamiko包含两个核心组件:SSHClient和SFTPClient。SSHClient的作
2021-10-17 20:15:52
2817
原创 c++ allocator_traits
#include <cstddef>#include <iostream>#include <memory>#include <vector>// g++ allocator_traits_test.cpp -std=c++11 -fPIC -Ofast -D_GLIBCXX_USE_CXX11_ABI=0 -o allocator_traits_testtemplate <class T>struct custom_alloca
2021-10-12 23:21:21
760
原创 ubuntu手动下载安装软件包
对于不同的系统版本可以通过查看:cat /etc/issue本地下载软件包通过https://ubuntu.pkgs.org/20.04/ubuntu-main-amd64 或者https://ubuntu.pkgs.org/18.04/ubuntu-main-amd64进行下载安装。上面的两个链接分别是针对 amd架构的ubuntu20 和ubuntu18 对于arm架构需要进行安装貸定的包。下面介绍安装的软件主要是针对amd架构。安装libibverbs-devwget http://arc
2021-10-10 16:20:29
3548
原创 c++ dlopen、dlsym
// 加载动态库Status LoadLibrary(const char* library_filename, void** handle) { *handle = dlopen(library_filename, RTLD_NOW | RTLD_LOCAL); if (!*handle) { return errors::NotFound(dlerror()); } return Status::OK();}// 加载symbolStatus GetSymbolFromL
2021-09-03 11:21:30
740
原创 Register注册工厂
注册工厂class FileSystemRegistry { public: typedef std::function<FileSystem*()> Factory; virtual ~FileSystemRegistry(); virtual Status Register(const string& scheme, Factory factory) = 0; virtual FileSystem* Lookup(const string& scheme
2021-09-03 10:51:52
321
原创 扩展docker 容器内存大小
容器挂载的内存都在宿主机的/dev/mapper/ 目录下面, 在docker 内部可以通过df -h查看。然后在宿主机上可以看到挂载点ls -l /dev/mapper/docker-*-*0f177925583b0e79dc1*输出:lrwxrwxrwx 1 root root 7 6月 7 16:45 /dev/mapper/docker-8:2-1040189149-654e02512ffedb0be99406f19def387b574a5f685742db05d97897c2b8
2021-07-25 22:33:14
1596
1
原创 cuda-gdb 基本功能
官方文档kernel之间切换查看当前所在的kernel(cuda-gdb) cuda device sm warp lane block threadblock (0,0,0), thread (0,0,0), device 0, sm 0, warp 0, lane 0 (cuda-gdb) cuda kernel block threadkernel 1, block (0,0,0), ...
2021-07-04 15:52:01
814
原创 cuda-gdb
官方文档kernel之间切换查看当前所在的kernel(cuda-gdb) cuda device sm warp lane block threadblock (0,0,0), thread (0,0,0), device 0, sm 0, warp 0, lane 0 (cuda-gdb) cuda kernel block threadkernel 1, block (0,0,0), thread (0,0,0)(cuda-gdb) cuda kernelkernel 1切换
2021-07-04 15:34:33
645
原创 系统IO负载 排查步骤
iotop列出io占用较高的程序iostat能监控到每块磁盘的读写iostat -d -x -k 1 1 (-d表示显示I/O性能指标,-x表示显示扩展统计(即所有I/O指标))使用df 命令,找到磁盘的挂载点 或者 lsblklsof -p <pid>找到进程打开的文件每隔一段时间统计某一个文件占用的物理内存# count.shn=0pid=$1while (($n<10)) do cat /proc/${pid}/smaps | gre
2021-06-07 00:37:49
518
1
原创 SIMD and Avx2
SIMD 一条指令可以执行多个数据group的计算和输出。对于SIMD相对应的SISD.intel SSE2 , AVX2, AVX-512假设有一个任务是统计字符串中每一个字符出现的次数,我们可以用128bit 的SISD指令进行统计。每8个bit代表一个字符,所以只需要两个SIMD指令(move mask、pop count)。详细测试:#include <stdio.h>#include <thread>#define INC_TO 1000000 // o
2021-06-07 00:09:29
471
原创 char 与 unsigned char的本质区别
在内存中,char与unsigned char没有什么不同,都是一个字节,唯一的区别是,char的最高位为符号位,因此char能表示-128~127, unsigned char没有符号位,因此能表示0~255,8个bit,最多256种情况,因此无论如何都能表示256个数字。主要是符号位,但是在普通的赋值,读写文件和网络字节流都没什么区别,反正就是一个字节,不管最高位是什么,最终的读取结果都一样,只是你怎么理解最高位而已,在屏幕上面的显示可能不一样。但是我们却发现在表示byte时,都用unsigned
2021-06-06 12:29:05
640
原创 c++ atomic 详细讲解
1. 什么样的type 可以转化成atomic?任何 trivially copyable 的数据可以被转换成atomic.#include <iostream>#include <type_traits> struct A { int m;}; struct B { B(B const&) {}}; struct C { virtual void foo();}; struct D { int m; D
2021-05-22 22:19:57
11465
9
原创 atomic 原子操作
1. 什么样的type 可以转化成atomic?任何 trivially copyable 的数据可以被转换成atomic.#include <iostream>#include <type_traits> struct A { int m;}; struct B { B(B const&) {}}; struct C { ...
2021-05-22 22:19:12
579
原创 vmstat 机器CPU和进程性能监控
vmstat 使用(Sm使得输出对齐)vmstat 2 -Sm例子里命令行的 2 表示每隔 2 秒钟显示一次procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in c...
2021-05-09 18:56:44
254
原创 vmstat CPU和进程的性能监控
vmstat 使用(Sm使得输出对齐)vmstat 2 -Sm例子里命令行的 2 表示每隔 2 秒钟显示一次procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 60321892 15646228 3557
2021-05-09 18:47:02
252
原创 python class 装饰器
import sysimport osimport functoolsimport inspectfrom collections import defaultdictimport jsondef evaluate(filename): with open(filename, "r") as evaluate_file: return evaluate_file.read()class Params(object): DEFAULT = object() def _
2021-05-06 13:28:35
544
原创 python subprocess 定时任务式例
import subprocessimport threadingimport signalimport timefrom threading import Timerimport sysimport subprocessproecess = subprocess.Popen("echo 'hello' && sleep 5", shell=True, stdou...
2021-04-29 01:43:14
503
原创 python 控制函数运行时间
版本1from contextlib import contextmanager@contextmanagerdef timeout(duration): def timeout_handler(signum, frame): raise Exception('block timedout after {duration} seconds') signal.signal(signal.SIGALRM, timeout_handler) signal.alarm
2021-04-28 23:21:58
780
原创 手动安装python2.7和python3.6
wget http://python.org/ftp/python/2.7.14/Python-2.7.14.tar.xztar xf Python-2.7.14.tar.xzcd Python-2.7.14./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"make && make altinstall# Strip th
2021-04-28 23:18:19
244
原创 python定时任务式例
import subprocessimport threadingimport signalimport timefrom threading import Timerimport sysimport subprocessproecess = subprocess.Popen("echo 'hello' && sleep 5", shell=True, stdout=sys.stdout)import osimport functoolsdef func(p):
2021-04-28 23:14:35
189
McGrawHill_-_Machine_Learning_-Tom_Mitchell课后答案
2016-04-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人