<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Programmer_CJC的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Programmer_CJC</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Programmer_CJC]]></copyright><item><title><![CDATA[vscode使用code命令无效（bash: code: command not found）]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/121938363</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/121938363</guid><author>Programmer_CJC</author><pubDate>Tue, 14 Dec 2021 19:40:45 +0800</pubDate><description><![CDATA[原因是没有把code放到 /usr/local/bin下。先把vscode放到application下后运行如下命令


sudo ln -fs "/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code" /usr/local/bin/
]]></description><category></category></item><item><title><![CDATA[Google Bigquery如何保存超过1GB的数据]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/117472063</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/117472063</guid><author>Programmer_CJC</author><pubDate>Wed, 02 Jun 2021 16:25:01 +0800</pubDate><description><![CDATA[Google Bigquery只支持保存1GB以内的数据，当超过1GB是，需要设置b



首先是创建一个自己的project。
]]></description><category></category></item><item><title><![CDATA[mac os如何在命令行中使用某个lib]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/104264447</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/104264447</guid><author>Programmer_CJC</author><pubDate>Tue, 11 Feb 2020 15:54:27 +0800</pubDate><description><![CDATA[把该lib放入/usr/local/bin
]]></description><category></category></item><item><title><![CDATA[Python调用命令行时，保存warning提示]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/85776264</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/85776264</guid><author>Programmer_CJC</author><pubDate>Fri, 04 Jan 2019 14:52:40 +0800</pubDate><description><![CDATA[
def run_command(command):
    proc = subprocess.Popen(
        shlex.split(command),
        stderr=subprocess.STDOUT,
        stdout=subprocess.PIPE
    )
    output = proc.communicate()[0]
    retu...]]></description><category></category></item><item><title><![CDATA[区块链地址的产生方式]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/84135091</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/84135091</guid><author>Programmer_CJC</author><pubDate>Fri, 16 Nov 2018 10:52:48 +0800</pubDate><description><![CDATA[在理解区块链地址产生方法之前，先来简单地理解一下公钥私钥的加密原理：

1. 公钥是对外公开的，而私钥是保密的。当A想要把内容发送给B时，A会用他的私钥对内容加密，然后发送给B。B会用A的公钥来解密。

2. 公钥是通过私钥产生的，这个过程是无法逆转的。

3. 当B需要验证A的身份（数字签名）时，B可以用公钥验证这个数字签名是否是用A的私钥产生的。

 

当创建比特币的账户时，用户会在本地生成...]]></description><category></category></item><item><title><![CDATA[区块链(以太坊智能合约)与传统软件的区别]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/84134776</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/84134776</guid><author>Programmer_CJC</author><pubDate>Fri, 16 Nov 2018 10:31:26 +0800</pubDate><description><![CDATA[区块链与传统软件设计有很多区别：

1. 区块链是分布式的，而传统软件大多是中心化的

2. 区块链通常有无数个备份（每个矿工处都会有一个完整的区块链备份），而传统软件只会在单个或者若干个节点做备份

3. 区块链是一个链式结构，在区块链上的所有记录都是可追溯且无法修改的，而传统的系统可能难以追溯，且可以被人工修改

4. 区块链无法停止，一经上线，就会一直运行，而传统软件存在服务器停止的可能性
...]]></description><category></category></item><item><title><![CDATA[以太坊私有链搭建]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/80260109</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/80260109</guid><author>Programmer_CJC</author><pubDate>Wed, 09 May 2018 22:45:31 +0800</pubDate><description><![CDATA[1. 新建一个文件夹，文件夹下创建文件，genesis.jsongenesis.json是创世块，包含了一些私有链的设置，内容如下{
&quot;config&quot;: {
&quot;chainId&quot;: 15,
&quot;homesteadBlock&quot;: 0,
&quot;eip155Block&quot;: 0,
&quot;eip158Block&quot;: 0
},
&quot;difficulty&quot;: &quot;10000&quot;,
&quot;gasL]]></description><category></category></item><item><title><![CDATA[Solidity原理（六）：用solc编译smart contract，用evm反编译bytecode]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/80219720</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/80219720</guid><author>Programmer_CJC</author><pubDate>Sun, 06 May 2018 23:07:25 +0800</pubDate><description><![CDATA[首先需要安装solc和evmsolc：https://github.com/ethereum/solidity/releasesevm: https://geth.ethereum.org/downloads/编译一个smart contract可以通过指令 solc --bin-runtime filepath来得到bytecode反编译bytecode可以通过evm --dissam b...]]></description><category></category></item><item><title><![CDATA[Solidity原理（五）：EVM Bytecode文件结构以及如何执行]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/80218649</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/80218649</guid><author>Programmer_CJC</author><pubDate>Sun, 06 May 2018 22:47:54 +0800</pubDate><description><![CDATA[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...]]></description><category></category></item><item><title><![CDATA[Solidity原理（四）：从Bytecode角度分析，EVM如何在基本块之间跳转]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/80217672</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/80217672</guid><author>Programmer_CJC</author><pubDate>Sun, 06 May 2018 21:19:21 +0800</pubDate><description><![CDATA[BasicBlock：

在解释EVM是如何执行之前，先来解释一下BasicBlock（基本块）。一个基本块由一系列的指令构成，有一个入口和一个出口，入口就是第一个指令，出口就是最后一个指令。出口的类型有: 1. 条件跳转（JUMPI），2. 非条件跳转（JUMP），3. 结束指令（RETURN，REVERT）4.什么都没有，直接fall to下一个block



1. 条件跳转（JUMPI）...]]></description><category></category></item><item><title><![CDATA[Solidity原理（三）：abi编码以及与EVM交互的原理]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/80190058</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/80190058</guid><author>Programmer_CJC</author><pubDate>Fri, 04 May 2018 09:17:02 +0800</pubDate><description><![CDATA[1.   如何生成smart contract对应的ABI（ApplicationBinary Interface）函数的abi由以下元素组成1)     Type:有“function”，“constructor”, “fallback”三种2)     Name:函数名3)     Inputs:函数的参数类型，参数名，components(tuple类型才会有)4)     Output:函...]]></description><category></category></item><item><title><![CDATA[Solidity原理 (二)：库（Library）（待修改）]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/80118072</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/80118072</guid><author>Programmer_CJC</author><pubDate>Sat, 28 Apr 2018 11:22:08 +0800</pubDate><description><![CDATA[什么是库：在Solidity中，库和合约有点类似，你可以把库理解成Java中只包含static函数的类。它的作用和目的是代码复用。和普通合约有点不同的是，Library中无法包含storage变量。创建和使用库：下面的Library，有一个包含mapping的数据结构，并且提供了查询和插入的功能。注意在函数中传入的Data都加入了storage关键字，这里是传入了一个Data的引用。// Code...]]></description><category></category></item><item><title><![CDATA[Solidity原理（一）：继承(Inheritance)]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/80042261</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/80042261</guid><author>Programmer_CJC</author><pubDate>Sun, 22 Apr 2018 23:25:17 +0800</pubDate><description><![CDATA[首先看一段官网的描述：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 ...]]></description><category></category></item><item><title><![CDATA[web3.py获取公有链数据]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/79852058</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/79852058</guid><author>Programmer_CJC</author><pubDate>Sun, 08 Apr 2018 15:00:31 +0800</pubDate><description><![CDATA[1. geth同步本地数据，如果需要账户信息的数据，需要用full模式同步。由于以太坊曾经受到了攻击，2.4m起同步速度异常缓慢2. 安装web3， pypiwin32(windows下，因为要读文件，所以必须要装这个)3. 简单的example：from web3.eth import Eth
from web3 import Web3, HTTPProvider, IPCProvider
w3...]]></description><category></category></item><item><title><![CDATA[ubuntu pip版本下载路径问题]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/78367348</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/78367348</guid><author>Programmer_CJC</author><pubDate>Fri, 27 Oct 2017 17:37:58 +0800</pubDate><description><![CDATA[pip3总是会下载到Python3.4的路径下
解决方法：
sudo python3.5 -m pip install XXXX]]></description><category></category></item><item><title><![CDATA[用正则识别是否是code]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/77747299</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/77747299</guid><author>Programmer_CJC</author><pubDate>Thu, 31 Aug 2017 15:27:09 +0800</pubDate><description><![CDATA[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\{\(\),'\"”’}:]*
([\.]?[/]]></description><category></category></item><item><title><![CDATA[Android自定义组合控件]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/51772206</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/51772206</guid><author>Programmer_CJC</author><pubDate>Tue, 28 Jun 2016 00:10:58 +0800</pubDate><description><![CDATA[一般的步骤：
1.      定义一个xml布局文件，这个布局文件中的内容是：
你想要自定义的控件的所有组件，分开来写
2． 定义一个java类，继承你想定义的内容，比如继承RelativeLayout
3.  在activity的xml中，使用java类中自定义的控件
 
接下来举例：
 目标如下：


点击设置是否自动更新，checkbox也会被选中，因此需要将，2个tex]]></description><category></category></item><item><title><![CDATA[HierarchyViewer中的viewNode获取与解析方式]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/51744102</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/51744102</guid><author>Programmer_CJC</author><pubDate>Thu, 23 Jun 2016 15:43:16 +0800</pubDate><description><![CDATA[本文具体解释，连接上viewServer以后，利用“DUMP”+hash_code命令来获取到含有所有AppUI信息的字符串的解析
 
树状结构的解析：
1.     while ((line = in.readLine()) != null) 这里，每一行就是一个控件的所有信息，即之后保存的viewNode
2.     如何如何分层？这个是我之前一直的疑问，获取到的信息都是一连串的字符]]></description><category></category></item><item><title><![CDATA[HierarchyViewer如何获取app UI结构]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/51744071</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/51744071</guid><author>Programmer_CJC</author><pubDate>Thu, 23 Jun 2016 15:41:51 +0800</pubDate><description><![CDATA[DeviceBridge.java中，通过loadWindowData(Window window)返回一个ViewNode类
在这个方法中，通过DUMP+window.encode命令来获取到ViewNode，之前说过，在HierarchyViewer中的Activity总是被命名成Windows，即通过adb命令来获取指定的一个activity的ViewNode
 
       1.1]]></description><category></category></item><item><title><![CDATA[Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.]]></title><link>https://blog.youkuaiyun.com/Programmer_CJC/article/details/51727374</link><guid>https://blog.youkuaiyun.com/Programmer_CJC/article/details/51727374</guid><author>Programmer_CJC</author><pubDate>Tue, 21 Jun 2016 15:00:38 +0800</pubDate><description><![CDATA[解决方案 Tools -> Adnroid -> enable ADB integration]]></description><category></category></item></channel></rss>