- 博客(42)
- 问答 (2)
- 收藏
- 关注
原创 vscode使用code命令无效(bash: code: command not found)
原因是没有把code放到 /usr/local/bin下。先把vscode放到application下后运行如下命令sudo ln -fs "/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code" /usr/local/bin/
2021-12-14 19:40:45 8218 2
原创 Google Bigquery如何保存超过1GB的数据
Google Bigquery只支持保存1GB以内的数据,当超过1GB是,需要设置b首先是创建一个自己的project。
2021-06-02 16:25:01 540
原创 Python调用命令行时,保存warning提示
def run_command(command): proc = subprocess.Popen( shlex.split(command), stderr=subprocess.STDOUT, stdout=subprocess.PIPE ) output = proc.communicate()[0] retu...
2019-01-04 14:52:40 701
原创 区块链地址的产生方式
在理解区块链地址产生方法之前,先来简单地理解一下公钥私钥的加密原理:1. 公钥是对外公开的,而私钥是保密的。当A想要把内容发送给B时,A会用他的私钥对内容加密,然后发送给B。B会用A的公钥来解密。2. 公钥是通过私钥产生的,这个过程是无法逆转的。3. 当B需要验证A的身份(数字签名)时,B可以用公钥验证这个数字签名是否是用A的私钥产生的。 当创建比特币的账户时,用户会在本地生成...
2018-11-16 10:52:48 3437
原创 区块链(以太坊智能合约)与传统软件的区别
区块链与传统软件设计有很多区别:1. 区块链是分布式的,而传统软件大多是中心化的2. 区块链通常有无数个备份(每个矿工处都会有一个完整的区块链备份),而传统软件只会在单个或者若干个节点做备份3. 区块链是一个链式结构,在区块链上的所有记录都是可追溯且无法修改的,而传统的系统可能难以追溯,且可以被人工修改4. 区块链无法停止,一经上线,就会一直运行,而传统软件存在服务器停止的可能性...
2018-11-16 10:31:26 1295
原创 以太坊私有链搭建
1. 新建一个文件夹,文件夹下创建文件,genesis.jsongenesis.json是创世块,包含了一些私有链的设置,内容如下{"config": {"chainId": 15,"homesteadBlock": 0,"eip155Block": 0,"eip158Block": 0},"difficulty": "10000","gasL
2018-05-09 22:45:31 449
原创 Solidity原理(六):用solc编译smart contract,用evm反编译bytecode
首先需要安装solc和evmsolc:https://github.com/ethereum/solidity/releasesevm: https://geth.ethereum.org/downloads/编译一个smart contract可以通过指令 solc --bin-runtime filepath来得到bytecode反编译bytecode可以通过evm --dissam b...
2018-05-06 23:07:25 5921 3
原创 Solidity原理(五):EVM Bytecode文件结构以及如何执行
pragma solidity ^0.4.22;contract Demo{ uint public value1 = 0; uint public value2 = 0; function A(uint v) public returns(uint){ value1 += v; return value1; } function B(uint v) publi...
2018-05-06 22:47:54 5262 4
原创 Solidity原理(四):从Bytecode角度分析,EVM如何在基本块之间跳转
BasicBlock:在解释EVM是如何执行之前,先来解释一下BasicBlock(基本块)。一个基本块由一系列的指令构成,有一个入口和一个出口,入口就是第一个指令,出口就是最后一个指令。出口的类型有: 1. 条件跳转(JUMPI),2. 非条件跳转(JUMP),3. 结束指令(RETURN,REVERT)4.什么都没有,直接fall to下一个block1. 条件跳转(JUMPI)...
2018-05-06 21:19:21 2608
原创 Solidity原理(三):abi编码以及与EVM交互的原理
1. 如何生成smart contract对应的ABI(ApplicationBinary Interface)函数的abi由以下元素组成1) Type:有“function”,“constructor”, “fallback”三种2) Name:函数名3) Inputs:函数的参数类型,参数名,components(tuple类型才会有)4) Output:函...
2018-05-04 09:17:02 6311
原创 Solidity原理 (二):库(Library)(待修改)
什么是库:在Solidity中,库和合约有点类似,你可以把库理解成Java中只包含static函数的类。它的作用和目的是代码复用。和普通合约有点不同的是,Library中无法包含storage变量。创建和使用库:下面的Library,有一个包含mapping的数据结构,并且提供了查询和插入的功能。注意在函数中传入的Data都加入了storage关键字,这里是传入了一个Data的引用。// Code...
2018-04-28 11:22:08 1283
原创 Solidity原理(一):继承(Inheritance)
首先看一段官网的描述:Solidity supports multiple inheritance by copying code including polymorphism.When a contract inherits from multiple contracts, only a single contract is created on the blockchain, and the ...
2018-04-22 23:25:17 3127
原创 web3.py获取公有链数据
1. geth同步本地数据,如果需要账户信息的数据,需要用full模式同步。由于以太坊曾经受到了攻击,2.4m起同步速度异常缓慢2. 安装web3, pypiwin32(windows下,因为要读文件,所以必须要装这个)3. 简单的example:from web3.eth import Ethfrom web3 import Web3, HTTPProvider, IPCProviderw3...
2018-04-08 15:00:31 3330
原创 ubuntu pip版本下载路径问题
pip3总是会下载到Python3.4的路径下解决方法:sudo python3.5 -m pip install XXXX
2017-10-27 17:37:58 2216
翻译 用正则识别是否是code
Regular Expressions for the Detection of Code Elements[A-Z][a-zA-Z]+ ?[a-zA-Z0-9\.]+[(][a-zA-Z_,\.]*[)](https?://)?[a-zA-Z_\\-/]{2,}(\.[a-zA-Z_0-9\\-]{2,})+[^\s\{\(\),'\"”’}:]*([\.]?[/
2017-08-31 15:27:09 526
原创 Android自定义组合控件
一般的步骤:1. 定义一个xml布局文件,这个布局文件中的内容是:你想要自定义的控件的所有组件,分开来写2. 定义一个java类,继承你想定义的内容,比如继承RelativeLayout3. 在activity的xml中,使用java类中自定义的控件 接下来举例: 目标如下:点击设置是否自动更新,checkbox也会被选中,因此需要将,2个tex
2016-06-28 00:10:58 536
原创 HierarchyViewer中的viewNode获取与解析方式
本文具体解释,连接上viewServer以后,利用“DUMP”+hash_code命令来获取到含有所有AppUI信息的字符串的解析 树状结构的解析:1. while ((line = in.readLine()) != null) 这里,每一行就是一个控件的所有信息,即之后保存的viewNode2. 如何如何分层?这个是我之前一直的疑问,获取到的信息都是一连串的字符
2016-06-23 15:43:16 1375
原创 HierarchyViewer如何获取app UI结构
DeviceBridge.java中,通过loadWindowData(Window window)返回一个ViewNode类在这个方法中,通过DUMP+window.encode命令来获取到ViewNode,之前说过,在HierarchyViewer中的Activity总是被命名成Windows,即通过adb命令来获取指定的一个activity的ViewNode 1.1
2016-06-23 15:41:51 967
原创 Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
解决方案 Tools -> Adnroid -> enable ADB integration
2016-06-21 15:00:38 381
原创 BM25算法的实现过程
最近需要帮别人写一个BM25的文档,写完顺便上传了BM25是一个计算文本相似度的算法1. BM25公式: BM25是通过q和s中的公共词汇进行相似度计算的算法,其中q: 待测试文档s:需要进行相似度比较的文档 2. IDF的计算公式如下:N是训练集的总文档数,即需要比较的文档(s)的总数量Nt是含有单词t的文档(s)的
2016-05-18 13:50:53 3724
原创 矩阵乘法+快速幂优化递推式
对于一个一维的递推式,如斐波那契数列:f(0) = 0, f(1) = 1, f(n) = f(n-1) + f(n-2), 如果想求解第n个元素,一般就是用O(n)复杂度来求解,但是这不是最优的优化方法: 矩阵乘法+快速幂首先可以用一个矩阵递推下一维,对斐波那契来说,这个矩阵就是:(1,1)(1,0). 那么我们想求第n个数,只要把这个矩阵乘n次就好了,到这里,复杂度还是O(n)。但是我
2016-05-08 19:31:12 851
原创 zoj 3930 Dice Notation
第一次写ACM题解,今天参加浙大校赛,比赛时候一直纠结G,最后半小时和队友边抢键盘边写的D,最后2分钟写完,提交,wa了。然后回来写一发,二十多分钟就搞定了。。。发现比赛时没有注意到tab这个坑点,太心疼自己了。。。。思路就是先把空格全都删光,最后加空格,就ok了,注意tab这个坑#include#include#include#include#include#include#
2016-04-10 22:39:48 694
原创 HashMap的应用,CF650A
题目输入一个n,接下来有n组数据,每组数据是n个point(x,y);输出xi == xj || yi == yj的数量,注意要减去xi == xj && yi == yj的数量代码如下,写的复杂的原因是因为想练习一下HashMapimport java.awt.Point;import java.math.BigInteger;import java.util.ArrayList
2016-03-15 17:49:53 496
原创 Java多级排序
用了HDU 1862的excel排序做例子,但是感觉这道题内存限制有问题,一直ML,先不管,贴上代码import java.util.ArrayList;import java.util.Arrays;import java.util.Comparator;import java.util.Scanner;import java.util.Vector;public
2016-03-15 15:05:28 1190
原创 github新建SSH key出现github permission denied<publickey>
1. 找到C:\Users\Programmer_Win\AppData\Local\GitHub\PortableGit_c7e0cbde92ba565cb218a521411d0e854079a28c\etc\ssh2. 打开ssh_config3. 将IdentityFile=后面的内容改成~/.ssh/id_rsa
2016-02-21 20:52:44 446
原创 解决有java命令,没有javac命令
今天重装系统,配置jdk和jre环境时,按照往常一样的方法,方法如下http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html以前都是行得通的,不知道怎么回事,这次一直有问题于是在命令行中输入set,检查下配置发现环境变量的Path中,%JAVA_HOME%没有被替换成实际路径,所以发现这里出了问题
2016-01-22 17:27:00 17403
原创 Java中使用正则表达式
关于正则表达式的具体内容,在上一篇博文中已经具体介绍了,本博文具体介绍Java中的正则表达式使用方法在Java中,主要通过Pattern类和Matcher类来使用。首先,调用compile方法,如Pattern p = Pattern.compile(exp);然后创建匹配对象Matcher m = p.matcher(String);举例如下
2016-01-21 13:24:44 434
原创 正则表达式详细介绍
单个表示:-1 \d 数字-2 \D 非数字 注:大小写就是取反的意思-3 \w 任意一个字母或数字或下划线-4 \s 空白符(换行、制表符、空格)-5 . 任意字符(除了换行符)自定义字符集合:[]表示匹配[]内的任意一个字符,是一个或运算,比如[123],就表示是数字1或数字2或数字3[^]表示非运算,比如-[^123],表示除了数字123的
2016-01-20 18:46:57 597
翻译 安卓app运行机制:
安卓app运行机制:(google 官方文档提取)一、app在系统中是怎样存在的1. 安装apk(运行在各自的沙盒中)1.1 因为安卓是一个多用户的Linux系统,所以每个app就相 当于一个不同的用户1.2 每个app,系统都会给它一个独特的ID,然后分配不同的权限给app1.3 每个进程,都会拥有自己的虚拟机(virtual machine), 所
2015-12-01 02:21:48 3120
原创 Android studio中getVersionName一直都是1.0
原因很简单,在Android Studio,默认的位置改变了,在build.grade中,需要修改defaultConfig { minSdkVersion 9 targetSdkVersion 23 versionCode 1 versionName "2.0"}这样就能够显示到2。0
2015-11-24 17:13:23 714
原创 Mac系统下,打开Android SDK Manager
用命令行打开:进入到sdk/tools命令下,输入./Android sdk即可
2015-11-24 14:33:22 11560 3
原创 eclipse新建Android后src和layout文件夹为空
原因:升级了SDK,导致SDK与ADT版本不符合解决方法:1.点击help -> install new software-> add2. 添加adt地址: https://dl-ssl.google.com/android/eclipse/ 名字可以自定义3. 确认之后,选择全部安装的组组件,下一步。4. 正常此时会提示,只需要更新即可。同意并继续更新。5. 更新后
2015-11-24 10:56:48 916
转载 Eclipse自动补全功能失效
eclipse自补全失效的解决办法:1. 先检查自动补全的快捷方式是否设置正确。如下图所示:2. 自动补全需要对java -edit-content assisnt 进行设置。设置如下图:3.完成上述步骤,问题解决。
2015-08-17 15:47:25 1065
原创 HierarchyViewer源代码理解(三)
上一篇文章中提到对HierarchyViewer中,命令发送与接收的机制并不是很清楚,这篇文章就主要对这个进行研究 首先,通过adb命令行,连接到ViewServer(真机的话需要root权限才能够连接)步骤如下1.adb -e forward tcp:4939 tcp:4939讲Android设备的4939端口映射到pc的4939端口上2.adb -e shell ser
2015-08-13 13:16:10 1091
原创 HierarchyViewer源代码理解(二)
注:文章是建立在http://blog.csdn.net/liguangzhenghi/article/details/8363911的基础上理解和扩充,所以首先先表示感谢本文主要来讲一下loadViewServerInfoAndWindows这个函数 private void loadViewServerInfoAndWindows(final IDevice device
2015-08-12 21:31:36 562
原创 mac下ADB的配置和常用命令
首先,mac下地ADB配置1.打开终端,输入touch .bash_profile2.在终端输入open -e .bash_profile(这里的-e是edit的意思,输入这步后,会打开bash_profile文件)3.在bash_profile中配置环境变量,格式是export PATH=${PATH}:/Applications/eclipse_for_android/sdk/pl
2015-08-12 20:33:12 1652
原创 关于hierachyViewer源代码导入运行的问题
之前在导入hierachyViewer源代码的时候,一直出现问题,甚至有过想直接裸眼看代码的念头,但想想,这种问题在以后的研究中肯定是需要解决的,所以今天打算再抽出时间,研究下,结果终于成功了,看来凡是都不能太心急,研究这东西,必须静下心来,尤其是对于我这样的初学者而言,废话不多说之前导入主要参考了这篇博文http://blog.csdn.net/liguangzhenghi/arti
2015-08-12 13:39:29 494
原创 更新sdk后遇到This Android SDK requires Android Developer Toolkit version 20.0.0 or above
今天更新sdk后,遇到了This Android SDK requires Android Developer Toolkit version 20.0.0 or above原因是因为更新后,在sdk->tools->lib目录下面的plugin.prop也进行了变动,导致sdk版本过高,所以只要打开这个文件夹,把里面的版本改回20.0.0即可
2015-08-12 10:51:14 646
空空如也
Android运行hierarchyviewer源代码,jar包找不到引用
2015-07-30
Android accessibility 键盘监控 界面变化
2015-07-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人