股票代码
最近有客户过来, 说自己上市公司, 上市公司和上市公司不同, 深市沪市A股B股创业板新三板...那从号码上有什么区别呢?
000xxx 深市A股
60xxxx 沪市A股
300xxx 深市创业板
400xxx,430xxx,830xxx 新三板
83、87、88开头现在为北交所代码
B股是给国外投资者交易的, 略过.
最近有客户过来, 说自己上市公司, 上市公司和上市公司不同, 深市沪市A股B股创业板新三板...那从号码上有什么区别呢?
000xxx 深市A股
60xxxx 沪市A股
300xxx 深市创业板
400xxx,430xxx,830xxx 新三板
83、87、88开头现在为北交所代码
B股是给国外投资者交易的, 略过.
安装前先更新rabbitmq的专用源
echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install rabbitmq-server
安装mqtt和websocket-mqtt
sudo rabbitmq-plugins enable rabbitmq_web_mqtt
sudo rabbitmq-plugins enable rabbitmq_mqtt
sudo rabbitmq-plugins enable rabbitmq_manager
访问http://127.0.0.1:15672/#/, 使用guest/guest登录, 可以GUI形式查看.
guest是默认用户, 默认只能从127.0.0.1上登录. 开放任意登录, 在/etc/rabbitmq/下新建rabbitmq.config文件. 这个文件据说是标准的erlang config形式文件. 形式如下:
[{Application1, [{Par11, Val11}, ...]},
...
{ApplicationN, [{ParN1, ValN1}, ...]}].
只是开放guest登录权限, rabbitmq.config文件如下:
[
{
rabbit, [{loopback_users, []}]
}
].
之后重启服务即可.
sudo service rabbitmq-server restart
keras依赖很多, 其中tensorflow, conda, Python都是需要自己预先安装好的.
正确姿势是conda->python->tensorflow->keras.
conda是python环境管理器, 装conda最好是先不要装python, 装好了也还是卸载了吧, 交个conda管.
conda有两个主要版本, anaconda/miniconda,一定要装x64版本的. 可以选装python3.5版本.
安装好conda, path设置为conda目录下的Scripts, 这样就可以运行.
windows上, tensorflow只支持python3.5 x64版本, 所以创建一个python3.5的环境.
如果前面没装python3.5版本,可以用下面的命令创建:
conda install conda
conda create --name py35 python=3.5
activate py35
conda install anaconda
以上装好了conda和python3.5环境
确认一下python确实是3.5版本,64位. 运行python,进入python命令行:
(py35) C:\r\ai\kerasproj>python
Python 3.5.3 | packaged by conda-forge | (default, May 12 2017, 16:16:49) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
看到Python 3.5.x和 [MSC v.1900 64 bit (AMD64)] z
给pip装一个豆瓣的源, 在home目录下(我的是/users/jac/)创建pip目录, 里面创建一个pip.ini文件, 内容如下:
[global]
index-url = https://pypi.douban.com/simple
保存后, 用conda切换到py35的源
activate py35
并安装tensorflow, 如果pip直接装不了, 可以用下面这个再试试(一个是CPU版本,一个是GPU版本)
pip install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-0.12.0rc1-cp35-cp35m-win_amd64.whl
pip install --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-0.12.0rc1-cp35-cp35m-win_amd64.whl
pip install keras
新建个test.py文件测试一下
from keras.models import Sequential
model = Sequential()
if __name__ == '__main__':
print("OK")
运行 python test.py看看, 不报错就说明ok.
octave有着很丰富的插件, 支持windows, 并且语法上和matlab差不多
conda/anaconda有俩作用: 1. 创建一个python2.x/3.x共存的环境; 2. 下载一些pip里下不到的包,主要是科学计算的, 涉及神经网络和深度学习;
conda装好后, 默认有一个root环境, 用下面的命令可以看到:
conda env list
我的装过python2.7,所以默认的python版本也是2.7的. 现在要种tensorflow, 可是TensorFlow在windows端只在python3.5上才有,哦, 那就用conda创建一个新环境, 使用python3.5
conda create --name python35 python=3.5
记住了, 直到目前为止(2018/8/2), python3.6也不行,只有3.5 哦! 然后conda就会自动下载python3.5环境, 还包括pip等. 这个我稀饭! 然后使用如下命令切换到新的环境
activate python35
前面不需要加conda,不是conda 的子命令哦! 但在有的文章里说前面需要加source,也就是source activate python35 . 不过我的直接activate就可以了 然后安装常用包,
conda install conda
conda install anaconda
第二项安装要装好多好多包....有几个还特别大... 慢慢等吧...
心静 乱弗生
内觉六感
外断七情
匆匆间须臾片刻
凝凝然回归本真
心疲 祸丛起
速而不达
急而弗能
电铃车鸣催人老
车水马龙使人憔
utf8格式的文本文档以0xEFBBBF开头, 后面才是正式文本, 千万别搞错了.
乐鑫官方的ESPtool是python版本的, 也就是esptool.py, 不过发现arduino上面ESP兼容版用的ESPtool是一个exe版本,找了一下,发现是github上的esptool-ck
这儿放几个用法: 从app.elf转app_00000.bin, app_40000.bin.4M flash空间.
esptool -bz 4M -eo app.elf -bo app_00000.bin -bs .text -bs .data -bs .rodata -bc -ec -eo app.elf -es .irom0.text app_40000.bin -ec
上传固件到COM5, 波特率115200, 手动重启方式上传.
esptool -cp COM5 -cd none -cb 115200 -ca 0x00000 -cf 00000.bin -ca 0x40000 -cf 40000.bin
也可以这样
esptool -cp COM5 -cf 00000.bin -ca 0x40000 -cf 40000.bin
清空NodeMCU的Flash
esptool -cp /dev/ttyUSB0 -cd nodemcu -ce
上传固件到espduino/nodemcu,带比较详细一点儿的输出
esptool.exe -vv -cd nodemcu -cb 921600 -cp COM13 -ca 0x00000 -cf ./nh_fixed.bin
通常要将一个数组复制,或者与另一些值连接在一起,会使用concat
a = [1,2,3]
b = a.concat() //1,2,3
c = a.concat(4,5,6) //1,2,3,4,5,6
现在有更优雅的方式: 三个点展开数组
d = [...a, 7,8,9] //1,2,3,7,8,9
在数组内使用...可以展开另一个数组, 就好像是吧这个数组的方括号[]给去掉了一样
另外, function的成员 arguments不是真正的数组, 它没有Push/pop这些方法,但有...方法. 要转换为真正的数组,可以的方法有:
arr1 = [...arguments]
arr2 = Array.from(arguments)
哦,这儿说的是比较常规的方式.
改自己密码当然是
passwd
然后输入旧密码, 新密码x2.
如果你有sudo权限,可以试着这样修改root密码:
sudo passwd root
这时候rmdir无论如何都是用不了的, 使用
rm -rf 目录名
如果按尤瓦尔赫拉利的观点,货币只是一种故事,价值在于有多少人相信的话,那么比特币的价值也在于有多少人相信。从实际投资者到极客,到科技媒体,到金融媒体,再到大众媒体,从新媒体到电视媒体,传播面依次渐广,对信任的影响依次渐大。到无人不知的时候,影响力也就到顶了。现在传播技术已无障碍,影响传播的是小编们的新闻编制速度,和事件的重要程度。广大吃瓜群众只是手动转发一下。最终体现在新闻的数量上和不同媒体受众的数量上。事件重要度如何获知?也是看哪个层次的受众会感兴趣。如果不感兴趣,那个层次的媒体连新闻都懒得写。
OK.这儿讲的是SS. 就是S.....Socks-libev
1. 服务器端
服务器端Ubuntu 16.10以上版本可以直接使用apt-get安装
sudo apt-get install sh....so...-libev
装好后, 配置/etc/sha...so...-libev/config.json, (恩,JSON is good). 如下:
{
"server":"xxx.xxx.xxx.xxx",
"server_port":8888,
"password":"**********",
"method":"aes-256-cfb"
}
Server就是服务器的IP, serverport自行修改成任意值都可以, password也请自行修改.
2.1 windows端
windows的客户端还是挺好用,也简单. 不做介绍了, 自己去找-_-|||
配置项中,配的和服务器端一样就可以了.
2.2 openwrt端
这个麻烦些,先下载个对应版本
然后还要用opkg安装几个依赖
# 这两个依赖是一定要装的
opkg install ip ipset
# 装ss
opkg install ./s.....s....文件名.ipk
在OPENWRT CC版本中安装OK,可是在AA版本中会遇到问题
pkg_run_script: package "shadowsocks-libev-spec-polarssl" postinst script returned status 127.
opkg_configure: shadowsocks-libev-spec-polarssl.postinst returned 127.
那是因为postinst会调用/lib/function.sh中的一个default_postinst()函数,而AA版本里面没有这个函数, 只好自己手动加了,在/lib/function.sh最后面加上:
default_postinst() {
return 0
}
值得注意的是, ss客户端有ss-local/redir等等, 在spec版本中没有local,也就是sock5代理,这个要注意
运行下面的命令,会发现ss-local在运行就好
root@OPEN:/# ps | grep ss-local
18797 root 2652 S /usr/bin/ss-local -c /etc/sh....socks.json -b 0.0.0.0
19474 root 1060 S grep ss-local
当然,需要改一下 /etc/sh....socks.json, 修改为:
{
"server":"xxx.xxx.xxx.xxx",
"server_port":8888,
"local_port":7654,
"password":"***********",
"method": "aes-256-cfb"
}
就是比服务器端多了一个local_port的定义. 当然这个是sock5的代理port了.
重启一下服务:
/etc/init.d/so....s.... restart
OK了!
如果你想实时监控一下log信息, 可以先停止服务,在命令行启动,并加上-v
/etc/init.d/so....s.... stop
cc-local /etc/s.....s.....json -b 0.0.0.0 -v
2.2.1 windows上通过openwrt sock5上网
通过代理服务器上网通常都需要软件支持. 以firefox为例,打开 "菜单 - 选项 - 高级 - 网络 - 设置(E)..." 看到对话框(藏得好深的对话框...)
再选择"手动配置代理 - sock主机",填写IP和端口, 选择 SOCKS v5, 以及"使用SOCKS V5代理 DNS", 然后"确定"
看一年y..t...的视频, 能播就说明OK咯.
然而通过系统代理却不行,主要是DNS在作怪. 因为系统的代理不会把DNS也代理过去.
虽然我习惯用mlocate,不过这个命令太高级不通用,有的linux上没装,有的linux上没有(openwrt)
所以还是用find吧
find / -name ps
find / -iname *ps
这个意思是在根目录/及其子目录下查找ps命令,额,大多数情况这样就够了
后面一条命令的意思是忽略大小写, 查找以ps结尾的文件名.