ciniao 发布的文章

python 虚拟环境的重要性已经无需多言了, 目前所有支持 python 虚拟环境的工具中最好用的应该就是 conda 了, 最重要的一点是可以一键创建不同版本的 python 环境以适应不同的需求.

Anaconda 比较臃肿, 本文使用无 GUI 的 miniconda。

Minicanda安装

下载
进入清华大学开源软件镜像站网址:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/

建议下载最新版本:
Miniconda3-latest-Windows-x86_64.exe

安装
一路Next即可

设置环境变量
自行将Miniconda的路径(第二步所选择的安装位置)添加到系统的环境变量中,确保你可以在任何位置运行conda命令。这一步非常关键,它将为你在Windows系统上使用conda提供便利。

建议增加的路径

path\to\your\miniconda
path\to\your\miniconda\Library\bin
path\to\your\miniconda\Scripts

- 阅读剩余部分 -

说到进程管理,后端和运维的同学都不陌生。生产项目以及一些脚本任务都需要进行进程管理。现在市场上用得最多的当属 supervisor 了,但是它只能运行在 Unix-Like 的系统上,也就是说 supervisor 不能再 windows 上运行。

我们这里说的是另外一个进程管理工具 PM2,PM2 不仅仅适用于 Unix-Like 系统,同样适用于 windows 系统。这点对于开发者来说也是个福音,下面我们来说说 PM2 的简单使用。

安装

安装 nodejs 和 npm

# 下载指定版本的nodejs,这里我们安装node14.17版本
wget https://nodejs.org/dist/v14.17.3/node-v14.17.3-linux-x64.tar.xz
# 加压安装包
tar xvf node-v14.17.3-linux-x64.tar.xz
# 重命名
mv node-v14.17.3-linux-x64 node
# 移动到/usr/local
mv node /usr/local
# 制作软连接
ln -s /usr/local/node/bin/node /usr/bin/node
ln -s /usr/local/node/bin/npm /usr/bin/npm

安装好 nodejs 和 npm 后,运行下node -v测试下是否安装成功。

- 阅读剩余部分 -

这里给大家介绍下使用命令行来进行s3的数据传输,以便将命令行写入本地代码实现自动化数据传输

安装方式

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple awscli

//安装后可通过
aws --version
//来确定是否成功
#aws-cli/1.24.10 Python/3.6.8 Linux/3.10.0-1160.90.1.el7.x86_64 botocore/1.26.10

配置本地cli环境

aws configure --profile xxxxxx
//其中xxxxxx为别名

//执行后,根据提示配置以下信息
AWS Access Key ID [****************xxxx]:   # 输入你的AK key
AWS Secret Access Key [****************xxxx]: # 输入你的SK key
Default region name [cn-northwest-1]: 
Default output format [None]:

- 阅读剩余部分 -

使用curlftpfs,可以将ftp目录,挂载到centos下,像操作本地目录一样方便快捷。

安装

https://sourceforge.net/projects/curlftpfs/files/curlftpfs/ 源码编译安装

wget http://sourceforge.net/projects/curlftpfs/files/curlftpfs/(版本号)/curlftpfs-(版本号).tar.gz

解压并安装

tar -xvzf curlftpfs-(版本号).tar.gz
cd curlftpfs-(版本号)
./configure
make
sudo make install

挂载FTP服务器

curlftpfs -o umask=000,rw,allow_other,codepage=utf8  ftp://centos:cloud4c@192.168.17.195 /home/centos/ftp

- 阅读剩余部分 -

准备工作

  1. 一个域名,只要能够正常解析就行
  2. xshell或其他ssh软件
  3. 一台云服务器,流量尽可能多,带宽能够尽量跑满自己家庭宽带的上行即可
  4. 基础linux知识

查看frp目前的版本:https://github.com/fatedier/frp/releases, 本教程以0.33版本作为例子

服务端

wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
tar -zxvf  frp_0.33.0_linux_amd64.tar.gz
cd  frp_0.33.0_linux_amd64
vi frps.ini

- 阅读剩余部分 -

泛型是 TypeScript(以下简称 TS) 比较高级的功能之一,理解起来也比较困难。泛型应用场景非常广泛,很多地方都能看到它的影子。平时我们阅读开源TS 项目源码,或者在自己的 TS 项目中使用一些第三方库(比如React)的时候,经常会看到各种泛型定义。如果你不是特别了解泛型,那么你很可能不仅不会用,不会实现,甚至看不懂这是在干什么。

相信大家都经历过,看到过,或者正在写「一些应用,这些应用充斥着各种重复类型定义, any 类型层出不穷,鼠标移到变量上面的提示只有any,不要说类型操作了,类型能写对都是个问题」 。我也经历过这样的阶段,那个时候我对 TS 还比较陌生。

随着在 TS 方面学习的深入,越来越认识到 「真正的 TS 高手都是在玩类型」 ,对类型进行各种运算生成新的类型。这也好理解,毕竟 「TS提供的其实就是类型系统」 。你去看那些 TS 高手的代码,会各种「花式使用泛型」 。 可以说泛型是一道坎,只有真正掌握它,你才知道「原来TS 还可以这么玩」 。怪不得面试的时候大家都愿意问泛型,尽管面试官很可能也不怎么懂。

「只有理解事物的内在逻辑,才算真正掌握了,不然永远只是皮毛,不得其法」 。本文就带你走进泛型,带你从另一个角度看看究竟什么是泛型,为什么要有它,它给 TS 带来了什么样的不同。

- 阅读剩余部分 -