Podman使用阿里云容器镜像

Podman 是一个开源的容器管理工具,语法兼容 Docker ,但是某些方面比原生 Docker 命令更好用,比如能够以非 root 用户的身份去运行容器,而且不需要守护进程。

Podman 引入了一个注册表的概念,注册表就是包括 docker.io 在内的多个容器镜像源,默认的有 redhat docker fedora centos quay

国内直接用 podman pull 拉取镜像会很慢,所以需要配置阿里云容器镜像来加速访问。

Podman 默认注册表配置文件在 /etc/containers/registries.conf

修改为以下内容:

unqualified-search-registries = ["docker.io"]

[[registry]]
prefix = "docker.io"
location = "******.mirror.aliyuncs.com"

把 location 对应的值修改为你的阿里云容器加速镜像地址就可以了,现在拉取镜像就是用的阿里云加速

Javascript 数组操作

一 数组转换为字符串

var w = ['a', 'b', 'c'];
w.toString(); // "a,b,c"
w.join(''); // "abc"
w.join('-'); // "a-b-c"

二 数组添加元素

var w = ['a'];
w.push('b'); // w: ["a", "b"]
w.unshift('c'); // w: ["c", "a", "b"]

三 数组删除元素

var w = ['a', 'b', 'c'];
w.pop(); // c
// w: ['a', 'b'];
w.shift(); // a
// w: ['b'];
delete w[0]

四 合并数组

var w1 = ['a'];
var w2 = ['b'];
var w = w1.concat(w2); // ["a", "b"]

五 查找数组元素

var w = ['a', 'b', 'c'];
w.indexOf('b'); // 1
w.includes('c'); // true
w.find(function(v, i, a) {
    if (v === 'b') {
    // do something
    }
}); // 'b'
w.findIndex(function(v, i, a) {
    if (v === 'b') {
    // do something
    }
}); // 1
w.forEach(function(v, i) { 
    if (v === 'b') { 
    // do something
    }
});

六 反转数组元素

var w = ['a', 'b', 'c'];
w.reverse(); // ["c", "b", "a"]

七 数组切片

var w = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
w.slice(2, 4); // ["c", "d"]

八 数组元素排序

var w = [4, 'e', 'z', 2, 'a', 'q', 9];
w.sort(); // [2, 4, 9, "a", "e", "q", "z"]
var w = [4, 7, 3, 2, 5, 8, 9];
w.sort(function(a, b) {
    return a - b;
}); // [2, 3, 4, 5, 7, 8, 9]

九 数组筛选

var w = [4, 'e', 'z', 2, 'a', 'q', 9];
var _w = w.filter(function(i) { return i > 0; }); // [4, 2, 9]

Javascript 字符串操作

一 字符串转换

// int to string
var n = 1; 
n.toString();
String(n);
'' + n
// string to int
var s = '123a';
Number(s);
parseInt(s); // 123 十进制
parseInt(s, 16); // 4666 十六进制
parseFloat(s); // 123
s = '123'; s - 0;

二 字符串分割

var s = 'abcdef-123456';
s.split('-'); // ['abcdef', '123456']
s.split('-', 1); // ['abcdef']

三 字符串查找

var s = 'abcdef';
s.indexOf('e'); // 4
s.lastIndexOf('e'); // 4
s.charAt(4); // e

四 字符串替换

var s = 'abcabc';
s.replace('a', '1'); // "1bcabc"
s.replace(/a/g, '1'); // "1bc1bc"

五 字符串匹配

var s = 'abcdef-123456';
s.match('ef'); // ["ef", index: 4, input: "abcdef-123456", ...]
s.match(/\w+/); // ["abcdef", index: 0, input: "abcdef-123456", ...]
s.match(/\w+/g); // ["abcdef", "123456"]
s.search(/\d+/); // 7

var reg = /\w+/;
reg.exec(s); // ["abcdef", index: 0, input: "abcdef-123456", ...]

六 字符串切割

var s = 'abcdef-123456';
s.substr(1, 4); // "bcde"
s.substring(1, 4); // "bcd"
s.slice(-3, -1); // "45"

七 大小写转换

var s = 'abcDEF-123456';
s.toLowerCase(); // "abcdef-123456"
s.toUpperCase(); // "ABCDEF-123456"

八 去除空格

var s = '  abc  ';
s.trim(); // "abc"

九 附录:字符串对象的所有方法

length
anchor()
big()
blink()
bold()
charAt()
charCodeAt()
concat()
constructor()
endsWith()
fixed()
fontcolor()
fontsize()
includes()
indexOf()
italics()
lastIndexOf()
link()
match()
matchAll()
normalize()
padEnd()
padStart()
repeat()
replace()
search()
slice()
small()
split()
startsWith()
strike()
sub()
substr()
substring()
sup()
toLocaleLowerCase()
toLocaleUpperCase()
toLowerCase()
toString()
toUpperCase()
trim()
trimEnd()
trimLeft()
trimRight()
trimStart()
valueOf()
hasOwnProperty()
isPrototypeOf()

清理Win10我的电脑中的各个文件夹

REM 我的电脑

REG DELETE HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a} /f
REG DELETE HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{24ad3ad4-a569-4530-98e1-ab02f9417aa8} /f
REG DELETE HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{d3162b92-9365-467a-956b-92703aca08af} /f
REG DELETE HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{088e3905-0323-4b02-9826-5d99428e115f} /f
REG DELETE HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3dfdf296-dbec-4fb4-81d1-6a3438bcf4de} /f
REG DELETE HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641} /f
REG DELETE HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A} /f

REM Onedrive

%SystemRoot%\SysWOW64\OneDriveSetup.exe /uninstall
REG Delete "HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" /f
REG Delete "HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" /f

保存为del.cmd,右键管理员权限运行

Win10设置MTU

查看当前系统的MTU

 netsh interface ipv4 show subinterfaces

修改MTU(需要管理员权限)

netsh interface ipv4 set subinterface "WLAN" mtu=1500 store=persistent

检测网络能够通过的最大包

ping -l 1501 -f www.taobao.com

Visual Code 编辑器添加到右键菜单


Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\Visual Code]
@="Edit with Visual Code"
"icon"="D:\\Soft\\VSCode\\Code.exe, 0"

[HKEY_CLASSES_ROOT\*\shell\Visual Code\command]
@="D:\\Soft\\VSCode\\Code.exe %1"

安装electron开发环境

第一步:安装 cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org

第二步:安装 electron 模块

cnpm install -g electron

第三步:安装

cnpm install -g electron-packager

第四步:打包

electron-packager . appName --platform=win32 --arch=x64 --electron-version=2.0.7

 

krpano解密tour.xml文件

krpano是一个很出名的全景图展示框架,他的配置文件 tour.xml 可被加密,加密后的文件是 `<encrypted><![CDATA[KENCPUZR****]]></encrypted>` 格式的,下面的方法可以解密这种加密文件

第一步:打断点

1. 用谷歌浏览器打开360全景页面
2. 按下 F12 打开开发者工具
3. 切换到 Sources 标签页,按下 F5 刷新页面
4. 在左边栏用鼠标点击 tour.js 然后点击右边窗口底部的一对大括号图标(Pretty print)显示格式化后的源代码
5. 在右边窗口内点击,按下 Ctrl + F 打开搜索框,搜索 eval
6. 找到 eval (437行附近)点击行号添加断点
7. 搜索 return d 添加断点
8. 按下 F5 刷新页面

第二步:获取解密后的源码

1. 点击执行断点按钮(Resume script execution)一次
2. 按下 F11 三次
3. 点击 Pretty print 格式化代码
4. 搜索 KENC (2228行附近)添加断点
5. 在 KENC 所在的函数结尾 } 的上一行添加断点(return n 所在的行)
6. 在右边工具栏 Watch 处添加监控变量 n
7. 点击执行断点按钮一次,在 Watch 处看到 n 的值变成了 “<krpano version” 开头
8. 切换到 control 标签页,输入命令 console.log(n)
9. 点击代码最后的 Copy 按钮,就可以得到解密后的源代码了

谷歌浏览器以应用模式启动

start "" "chrome.exe" --kiosk --app="http://localhost/" --user-data-dir=C:\temp --disable-pinch --disable-translate --incognito --check-for-update-interval 86400000

参数说明:

–kiosk 以kiosk模式启动

–incognito 无痕模式

–check-for-update-interval 86400000  更新间隔时间修改为1000天

–disable-background-networking  禁止后台联网

–allow-outdated-plugins  允许过期的插件

Win7镜像添加USB3驱动



cd e:\win7

md mount

md usb3

 

dism /get-wiminfo /wimfile:boot.wim

dism /mount-wim /wimfile:boot.wim /index:2 /mountdir:mount

dism /image:mount /add-driver:"usb3" /recurse

dism /unmount-wim /mountdir:mount /commit

 

dism /get-wiminfo /wimfile:install.wim

dism /mount-wim /wimfile:install.wim /index:3 /mountdir:mount

dism /image:mount /add-driver:"usb3" /recurse

dism /unmount-wim /mountdir:mount /commit