0%

为 Flutter 设定镜像配置

macOS / Linux

1
2
3
4
5
6
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
git clone -b dev https://github.com/flutter/flutter.git
export PATH="$PWD/flutter/bin:$PATH"
cd ./flutter
flutter doctor

Windows

1
2
3
4
5
6
$env:PUB_HOSTED_URL="https://pub.flutter-io.cn"
$env:FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
git clone -b dev https://github.com/flutter/flutter.git
$env:PATH="$PWD\flutter\bin:$env:PATH"
cd ./flutter
flutter doctor
阅读全文 »

挂载 Raw 和 QCOW2 格式镜像

挂载 Raw 格式镜像

Mounting The Raw Image

Associate the raw image with a loop device:

1
losetup /dev/loop0 image.raw

Map the partitions to loop devices:

1
kpartx -a /dev/loop0

You should be able to mount the partitions now:

1
mount /dev/mapper/loop0p1 /mnt/t01

Unmounting The Raw Image

Unmount the previously mounted partitions:

1
umount /dev/t01

Undo the mapping of the partitions to the loop devices:

1
kpartx -d /dev/loop0

Destroy the loop:

1
losetup -d /dev/loop0

挂载 QCOW2 格式镜像

This is a quick guide to mounting a qcow2 disk images on your host server. This is useful to reset passwords,
edit files, or recover something without the virtual machine running.

Step 1 - Enable NBD on the Host

1
2
3
if [ "$(lsmod | grep -E '\bnbd\s' -c)" -lt 1 ]; then
modprobe nbd max_part=8
fi

Step 2 - Connect the QCOW2 as network block device

1
2
qemu-nbd --connect=/dev/nbd0 vm-100-disk-1.qcow2
# qemu-nbd -c /dev/nbd0 vm-100-disk-1.qcow2

Step 3 - Find The Virtual Machine Partitions

1
2
# fdisk /dev/nbd0 -l
fdisk /dev/nbd0 -l|grep -E '/dev/.*p[0-9]'|cut -d' ' -f1

Step 4 - Mount the partition from the VM

1
2
mkdir -p /mnt/somepoint/
mount /dev/nbd0p1 /mnt/somepoint/

Step 5 - After you done, unmount and disconnect

1
2
3
4
umount /mnt/somepoint/
qemu-nbd --disconnect /dev/nbd0
# qemu-nbd -d /dev/nbd0
rmmod nbd

Windows 无限试用 JetBrains 系列产品

2020 系列

删除 %APPDATA%\JetBrains\<产品名>\eval\*.key,如 GoLand 2020.1.2 产品就是 GoLand2020.1

PowerShell 脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
# 修改为系统上安装了的版本
$products = "IntelliJIdea2020.1", "GoLand2020.1", "PyCharm2020.1", "WebStorm2020.1"

foreach ($product in $products) {
$parent = "${ENV:APPDATA}\JetBrains\${product}\eval"
if (Test-Path -Path $parent) {
Write-Host -ForegroundColor Green "Remove:" "$parent\*.key"
Remove-Item "$parent\*.key"
}
else {
Write-Host -ForegroundColor Yellow $parent "Not Found"
}
}
阅读全文 »

NodeJS 使用阿里镜像仓库

1
2
3
4
5
6
7
8
9
10
npm config set registry https://registry.npm.taobao.org/
npm config set disturl https://npm.taobao.org/mirrors/node/
npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/
npm config set sharp_dist_base_url https://npm.taobao.org/mirrors/sharp-libvips/
npm config set electron_mirror https://npm.taobao.org/mirrors/electron/
npm config set puppeteer_download_host https://npm.taobao.org/mirrors/
npm config set phantomjs_cdnurl https://npm.taobao.org/mirrors/phantomjs/
npm config set sentrycli_cdnurl https://npm.taobao.org/mirrors/sentry-cli/
npm config set sqlite3_binary_site https://npm.taobao.org/mirrors/sqlite3/
npm config set python_mirror https://npm.taobao.org/mirrors/python/
阅读全文 »

为终端设置代理

linux shell 终端代理设置方法

linux 要在 shell 终端为 http https ftp 协议设置代理,值需要设置对应的环境变量即可。

下面是一些关于代理的环境变量:

环境变量 描述 值示例
http_proxy 为http网站设置代理 10.0.0.51:8080
user:pass@10.0.0.10:8080
socks4://10.0.0.51:1080
socks5://192.168.1.1:1080
https_proxy 为https网站设置代理 同上
ftp_proxy 为ftp协议设置代理 socks5://192.168.1.1:1080
no_proxy 无需代理的主机或域名,可以使用通配符,多个时使用 , 号分隔 *.aiezu.com,10.*.*.*,192.168.*.*,*.local,localhost,127.0.0.1

可以将上面4个环境变量设置项放于 ~/.bashrc 文件尾部,这样用户打开bash shell终端时会自动调用此脚本,读入它们。

阅读全文 »

Redis 常见面试题

什么是 Redis ?

Redis 是一个基于内存的高性能key-value数据库。

Redis 的特点

Redis 本质上是一个 Key-Value 类型的内存数据库,很像 Memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作, Redis 的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。

阅读全文 »

SSH 端口转发

SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。但是,SSH 还同时提供了一个非常有用的功能,这就是端口转发。它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程有时也被叫做“隧道”(tunneling),这是因为 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP 这些 TCP 应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输。而与此同时,如果您工作环境中的防火墙限制了一些网络端口的使用,但是允许 SSH 的连接,那么也是能够通过将 TCP 端口转发来使用 SSH 进行通讯。总的来说 SSH 端口转发能够提供两大功能:

  1. 加密 SSH Client 端至 SSH Server 端之间的通讯数据。
  2. 突破防火墙的限制完成一些之前无法建立的 TCP 连接。

使用了端口转发之后,TCP 端口 A 与 B 之间现在并不直接通讯,而是转发到了 SSH 客户端及服务端来通讯,从而自动实现了数据加密并同时绕过了防火墙的限制。

阅读全文 »

使用 aria2 搭建离线下载服务器

在VPS主机上安装 aria2 下载软件用作离线下载,能够远程管理下载,下载完成后能够通过HTTP(或其他任何你愿意的方式)从VPS取回。

阅读全文 »

物联网设备消息队列选型

需求

消息队列的作用

  • 削峰,形象点的话,可以比喻为蓄水池。比如elk日志收集系统中的kafka,主要在日志高峰期的时候,在牺牲实时性的同时,保证了整个系统的安全。
  • 同步系统异构化。原先一个同步操作里的诸多步骤,可以考虑将一些不影响主线发展的步骤,通过消息队列异步处理。比如,电商行业,一个订单完成之后,一般除了直接返回给客户购买成功的消息,还要通知账户组进行扣费,通知处理库存变化,通知物流进行派送等,通知一些用户组做一些增加会员积分等操作等。
阅读全文 »