谷歌 chrome v8 引擎可以嵌入到自己的 c++ 程序中. 一般可以把 v8 编译成 dll, 然后调用.
还可以把 v8 编译成静态库, 静态链接到自己的程序中. 要编译v8的源代码可不是件容易的事.
这里记录下步骤:
C:\Users\neil\.bashrc
file:export DEPOT_TOOLS_WIN_TOOLCHAIN=0
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\12.0
.InstallDir
, value is: C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat
, copy one.fetch v8
cd v8
gn gen out-release/Default --args="v8_static_library=true is_component_build=false v8_use_external_startup_data=false v8_use_snapshot=false is_debug=false" --ide=vs2015
注意:
1. 第 4 步, 可能是因为 VS2013 express 版有点残, 如果你是pro 或者 ultimate版 可能不需要.
2. 第 8 步, 需要从 google 同步很多工具, 在中国, 你懂得.
3. 第 10 步, 个的参数是生成静态库. 不加,就是动态库. 要查看所有可用参数: "gn args --list" for available build arguments.
refs:
1. https://www.chromium.org/developers/how-tos/install-depot-tools
2. https://v8project.blogspot.com/2015/09/custom-startup-snapshots.html
3. https://chromium.googlesource.com/chromium/src/tools/gn/+/HEAD/docs/reference.md
4. https://stackoverflow.com/questions/38674676/building-and-linking-v8-in-visual-studio
在 ubuntu 上运行 mosh 的客户端, 出现以下错误:
The locale requested by LC_CTYPE=UTF-8 isn't available here.
Running `locale-gen UTF-8' may be necessary.
The locale requested by LC_CTYPE=UTF-8 isn't available here.
Running `locale-gen UTF-8' may be necessary.
mosh-server needs a UTF-8 native locale to run.
Unfortunately, the local environment (LC_CTYPE=UTF-8) specifies
the character set "US-ASCII",
The client-supplied environment (LC_CTYPE=UTF-8) specifies
the character set "US-ASCII".
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=
LANGUAGE=
LC_CTYPE=UTF-8
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
Connection to 128.199.. closed.
/usr/local/bin/mosh: Did not find mosh server startup message.
在~/.bashrc添加一行:
export LC_ALL="en_US.UTF-8"
退出 bash, 再次进入, 出现以下警告:
-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory
我们可以通过运行 locale -a 查看系统当前支持的locale定义
我们通过运行
localedef -v -c -i en_US -f UTF-8 en_US.UTF-8
生成相应的locale配置文件。之后系统就不会报错了。
今天要在solaris上安装git。
记录一下步骤:
pkgadd -d http://get.opencsw.org/now
/opt/csw/bin/pkgutil -U
/opt/csw/bin/pkgutil -y -i git
/usr/sbin/pkgchk -L CSWgit # list files
https://www.opencsw.org/package/git/
gentoo linux 使用 emerge
安装 软件。
更新软件包信息:
emerge --sync
搜索软件包:
emerge --search netcat
安装软件:
emerge curl
如果安装软件遇到如下错误:
# emerge net-analyzer/openbsd-netcat
* IMPORTANT: 11 news items need reading for repository 'gentoo'.
* Use eselect news read to view new items.
Calculating dependencies... done!
[ebuild R ~] net-analyzer/openbsd-netcat-1.105-r1
The following keyword changes are necessary to proceed:
(see "package.accept_keywords" in the portage(5) man page for more details)
# required by net-analyzer/openbsd-netcat (argument)
=net-analyzer/openbsd-netcat-1.105-r1 ~amd64
Use --autounmask-write to write changes to config files (honoring
CONFIG_PROTECT). Carefully examine the list of proposed changes,
paying special attention to mask or keyword changes that may expose
experimental or unstable packages.
尝试这样:
ACCEPT_KEYWORDS="~amd64" emerge net-analyzer/openbsd-netcat
jks 是 java 的 key store 文件格式. java 提供 keytool 工具操作jks.
keytool 是随 jre 发布的工具. 所以只要你安装了 jre 就有这个工具.
在windows上,是keytool.exe. 在Lunix上,是 keytool
jks 类似于 pfx(p12) 文件, 有密码加密, 可以保存多可key 或者证书等等. key 或者 证书被称为一个 entry, 每个entry有个别名(alias). 操作时需要制定别名.
查看 jks 的内容:
keytool -list -keystore publickeys.jks -storepass mypassword
keytool -list -keystore privatekeys.jks -storepass mypassword
keytool 还可以操作pfx 文件.
比如:
keytool -list -keystore PartyB.pfx -storetype pkcs12 -storepass ExampleB -v
添加证书到 jks 中:
keytool -importcert -keystore publickeys.jks -storepass mypassword -alias partyb -file PartyB.cer
添加pfx 包含key和证书到 jks 中:
keytool -importkeystore -srcstoretype PKCS12 -srckeystore PartyB.pfx -srcalias 1 -srcstorepass ExampleB -destkeystore privatekeys.jks -deststorepass secrets -destalias partyb -destkeypass ExampleB
注意上面的 -srcalias 1
, 指的是 pfx 文件中需要导入到 jks 中的证书的 别名. 如何查看到这个别名呢:
用上面的 list 命令可以查看到 pfx 里面的 alias:
keytool -list -keystore PartyB.pfx -storetype pkcs12 -storepass ExampleB -v | grep "Alias"
删除 jks 中的 证书或key
keytool -delete -keystore publickeys.jks -storepass mypassword -alias partyb
keytool -delete -keystore privatekeys.jks -storepass mypassword -alias partyb
ssh 的服务器如果延迟比较大的话, 还是比较痛苦的.
今天发现了这个东西: mosh
http://scm.zoomquiet.io/data/20131104091538/index.html
http://www.zfanw.com/blog/mosh.html
它是为了解决两个问题:
简单的讲, 它使用普通的ssh协议认证, 然后传输使用udp协议.
使用udp协议的好处是不用总是保持连接, 用来解决第一个问题, 就是高丢包率. 就算丢包,也不会断,因为本来就是 udp , 没有连接.
为了处理延迟大的问题, 它在客户端做了优化, 包括输入回显预测机制,让你感觉到输入流畅了. 以及打包及拆包发送等等. 实测效果比较流畅.大有改观.
目前的缺陷, 就是只支持交互式shell环境, 不支持X转发,和端口转发等.
简单说一下安装方法.
服务端已经支持了几乎所有的平台. 安装也很简单:
https://mosh.mit.edu/#getting
apt-get install mosh
服务端默认使用 udp 60001 端口传输, 所以可能需要你打开防火墙端口:
iptables -I INPUT -p udp --dport 60001 -j ACCEPT
apt-get install mosh
我是windows, 官方客户端只支持cygwin. 所以要先安装cygwin.
mosh已经进入cygwin的仓库, 但是默认没有安装.
在cygwin安装时, 需要搜索添加mosh.
如果已经安装过cygwin了, 再次运行安装程序, 然后在安装时搜索找到mosh 安装即可.
mosh 只能在 纯的 utf-8 环境下工作. 所以在运行 mosh之前, 要改cygwin的语言.
找到 cygwin的 C:\cygwin64\home\neil.bashrc 文件.
在文件末尾加入如下两行.
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
启动cygwin的shell.
直接输入命令:
mosh root@myserver.com
如果ssh的端口改了.
mosh -ssh="ssh -p 1234" root@myserver.com
更新:
今天发现有官方的 chrome 插件 客户端. 可以在浏览器里直接连接vps了.
https://chrome.google.com/webstore/detail/mosh/ooiklbnjmhbcgemelgfhaeaocllobloj