sdfsd
作者: junhao
electron-vue + element ui
0. 以管理员方式运行powershell
1.
vue init simulatedgreg/electron-vue my-project
// 1. 不要用eslint!不然对js格式要求严格
// 2. 用builder而不是packager,packager太慢了
2.
cd my-project
3.
cnpm install
4. 安装element-ui
cnpm install element-ui –save-prod
linux x86_64 下编译运行x86 nasm 汇编程序
背景:学习PC Assemble Language。
1. nasm -f elf fileName.asm
这样生成了合适的fileName.o
2. nasm -f elf -d ELF_TYPE asm_io.asm
这样生成了合适的第三步用到的asm_io.o
P.S. 这里就是”ELF_TYPE”, 不要换成其他的如”elf”
3. gcc -m32 -o fileName driver.c asm_io.o
这样就生成了可执行文件fileName
4. ./fileName
这样就运行了!
nginx 部署vue
nginx.conf里面的:
server {
listen 80 default_server;
server_name localhost;
root /var/www/html/dist;
location / {
root /var/www/html/dist;
try_files $uri $uri/ @router
index index.html;
}
location $router {
rewrite ^.*$ /index.html last;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
/*
注意:
1)vue生成的dist目录放在/var/www/html下,如果放到/root/下的话,就会因为权限问题而nginx 403 forbidden
2) axios里的 base里面写的服务端api的地址如localhost、127.0.0.1等换成服务器http://ip
获取合约返回值的方法
1. solidity的合约中,设定函数为view类型,如
function getAgent(address _agentAddress) public view returns(address _parentAddress, address _grandpaAddress){
require(agents[_agentAddress].isUsed, "address_none");
return (agents[_agentAddress].parentAddress, agents[_agentAddress].grandpaAddress);
}
这样通过web3j生成的java函数为
public RemoteCall<Tuple2<Address, Address>> getAgent(Address _agentAddress) {
final Function function = new Function("getAgent",
Arrays.<Type>asList(_agentAddress),
Arrays.<TypeReference<?>>asList(new TypeReference<Address>() {}, new TypeReference<Address>() {}));
return new RemoteCall<Tuple2<Address, Address>>(
new Callable<Tuple2<Address, Address>>() {
@Override
public Tuple2<Address, Address> call() throws Exception {
List<Type> results = executeCallMultipleValueReturn(function);
return new Tuple2<Address, Address>(
(Address) results.get(0),
(Address) results.get(1));
}
});
}
接着,使用的话如下:
RemoteCall<Tuple2<Address, Address>> tuple2RemoteCall = MainContractController.mainContract.getAgent(_agentAddress); Tuple2<Address, Address> addressAddressTuple2 = tuple2RemoteCall.send();
2. 如果函数不能是View类型,则solidity中只能通过emit事件了。
emit eventName(…)
idea, java, 直接修改第三方库源码的方法
比如要修改的类为Ma.java,包名为
package org.web3j.protocol.core;
那么,我们就在自己那个src/main/java下,
1)建org包,org包下建web3j包,protocol下建core包
2)在core包下建立Ma.java,里面写重写后的代码。
3)完事,直接开始运行把,之后ideal会默认采用自己写的那个。
// 注意应该像说的那样建立包的路径,而非随便放Ma.java在其他路径然后给Ma.java上声明package洒洒洒的。
// 参考:
https://blog.csdn.net/xie_xiansheng/article/details/74453244
ubuntu18 安装中文输入法
Linux下的致命操作
1 除了广为人知的rm -rf /*外,
2 还有chomd -R 777/*
这个命令会改变整个系统的权限系统,而一些软件是会检查权限然后执行的,会导致软件的不正常运行,一旦执行,只能重装!!!
3 iptables -P INPUT DROP
这个命令会拒绝掉所有链接,导致ssh都连不上(没配置白名单的话)。若此,阿里云的那里可以选择通过vnc连接,那么vnc连接回去后恢复。
ubuntu install java8
sudo apt install openjdk-8-jdk
mysql
change password:
use mysql; update user set authentication_string=PASSWORD(“mynewpassword”) where User=’root’; flush privileges;
create user:
create user zhangsan identified by ‘zhangsan’;
grant privileges:
grant all privileges on zhangsanDb.* to zhangsan@'%' identified by 'zhangsan';
flush privileges;
连接远程数据库
mysql -u username -p -h ip -P 30005