世界上第一只炒加密货币的小仓鼠,3个月赚了50%

世界之大,无奇不有。

你能想象仓鼠炒加密货币,还赚了不少钱吗?

最近国外有一只名叫Mr Goxx的仓鼠火了。

它是世界上第一只仓鼠加密货币交易员。

仓鼠Mr Goxx的业绩还真不错。

3个多月时间回报率达到19.41%。

在某段时间中,Mr Goxx的投资组合上涨了50%。

而同一时段,比特币也才上涨41%。

大家盘点一下自己今年的投资业绩。

和仓鼠Mr Goxx比一下,是不是有点拿不出手。

仓鼠怎么投资呢?

原理很简单,和预测足球胜负的章鱼保罗类似。

早些年,动物界出了个“神算子”章鱼保罗。

章鱼保罗以擅长预测足球比赛输赢闻名于世。

章鱼保罗是怎么预测的呢?

每次比赛前,在两支队伍的国旗下都摆上同样的食物。

章鱼保罗吃哪边的食物,就代表它猜哪支队伍赢。

简单说,全靠蒙成就了章鱼保罗的江湖地位。

当然你非要说章鱼保罗有什么超能力,我也没法反驳你。

仓鼠Mr Goxx用类似的方法交易加密货币。

仓鼠Mr Goxx居住的笼子是它的卧室。

卧室旁边有一个设计精巧的“办公室”。

办公室里有一个滚轮,随着仓鼠在上面奔跑,转动的滚轮会自动从30种加密货币中挑选出当天要买卖的加密货币。

选好之后,地上有两条管道,一条代表“买入”,一条代表“卖出”,

仓鼠钻哪条,就执行哪种交易命令。

Mr Goxx是在6月12日进入加密货币市场的,启动资金326欧元。

在刚开始的第一个月里,它交易了95次,最后亏了7.3%。

随后业绩慢慢好转,截止9月27日,Mr Goxx的从业回报率达到19.41%。

让仓鼠炒加密货币的主意,源于仓鼠主人和朋友的一个玩笑。

两人都来自德国,今年30多岁。

他们觉得现在什么都贵,年轻人太不容易了。

付完高昂的房租,几乎存不下什么钱。

对这代年轻人来说,好像除了把积蓄投入加密货币外,没有其他致富的机会了。

但对加密货币,其实很多人都一无所知。

仓鼠的主人就开了个玩笑,我家仓鼠会不会比人更会投资?

两人并不是嘴上说说,真的马上行动起来,给仓鼠打造了上面这个办公室。

两人作为出资方,投资给仓鼠交易员326欧元本金后,仓鼠就开始它的加密货币交易了。

仓鼠的名字Mr Goxx也大有来头。

这个名字源于曾经世界上最大的加密货币交易所——日本公司“Mt Gox”。

2014年Mt Gox遭黑客入侵,被盗走了价值约4.6亿美元的比特币,直接破产了。

Mr Goxx的交易策略就是没策略。

就这么随意的钻钻跑跑,居然也赚到了这么多。

真是应了那句话,风口来的时候,仓鼠都能飞上天。

两人把仓鼠交易员的日常通过自动化程序发到网上。

每当它跨进办公室,它在Twitch的直播会立即开启,推特也会发出一行文字:Mr Goxx已经开始交易。

它的每条投资动态下面,都专门备注了一句话:内容仅供娱乐,不作为投资建议。

真的有人会学着仓鼠做交易吗?

仓鼠都能炒加密货币的今天,好像也没什么不可能。

仓鼠Mr Goxx虽然业绩不俗,但因为本金太少,它赚的钱连笼子的钱都不够。

仓鼠Mr Goxx这个名字,也让人联想到破产交易所,暗含了对加密货币市场风险的担忧。

有趣的是,现实生活中许多人们眼中的投资明星,成功之道和仓鼠可能真的差不多。

巴菲特1984年在哥伦比亚大学商学院做了一次演讲。

演讲中他提到一个“全美抛硬币猜正反面大赛”的小故事。

假设全美国2.25亿人每天都参加一次抛硬币赌1美元的游戏。

输家被淘汰出局,赢家把输家手中的钱拿走,再全部投入作为第二天的赌注。

经过十个早上的比赛,将大约有22万名美国人连续获胜,他们每人可赢得略微超过1,000美元的钱。

这时他们就会吹嘘自己在抛硬币上如何技术高超,如何天才过人。

再过10天,将会有215位连续猜对20次硬币的正反面的赢家。

他们每个人用1美元赢得了100多万美元。

他们很可能会写一本书——“我如何每天只需工作30秒就在20天里用1美元赚到100万美元”。

他们还会在全国飞来飞去,参加各种抛硬币神奇技巧的研讨会。

这些用1美元本金,20天时间赚了100多万美元的幸运儿,本质上和仓鼠Mr Goxx差不多。

仓鼠Mr Goxx和人类相比,吃亏在不能发声表达。

否则它只要出几本书,上几次电视,同样能成为投资界一颗新星。

随机性和偶然性让投资世界充满了奇幻色彩。

仓鼠Mr Goxx的投资业绩告诉我们,选择很重要。

当你选择了风口行业,就像上了一部上行电梯。

你一定要对此心知肚明,别觉得自己多厉害。

下次再有人吹嘘自己高超的投资技能时,你应该清楚他可能只是另一只幸运的仓鼠而已。

python-crontab 设置定时任务

通过python-crontab 设置定时任务(创建设置定时任务的.py文件,并运行即可)
安装包: pip install python-crontab

创建新的py文件, 内容如下:

from crontab import CronTab
# 创建linux系统当前用户的crontab,当然也可以创建其他用户的,但得有足够权限,如:user='root'
cron_manager = CronTab(user=True)


# 创建任务 指明运行python脚本的命令(crontab的默认执行路径为:当前用户的根路径, 因此需要指定绝对路径)
job = cron_manager.new(command='python /root/hong/crontab_test/data_test.py >> /root/hong/crontab_test/data_result.log 2>&1 &')

# 设置任务执行周期,每两分钟执行一次

job.setall('*/2 * * * *')

# 将crontab写入linux系统配置文件
my_user_cron.write()

运行py文件,完成! 此时定时任务已经创建(可在linux终端 输入 contrab -l 查看), crontab 会按照设定的时间 定时调用指定路径下的data_test.py文件。

作者:酷酷的图图
链接:https://www.jianshu.com/p/925de5998e1d

Python实现二分查找法

基本思想:对于一个有序数组,从数组中间元素开始与target元素进行比较,target较大则到中间元素的右半部分继续二分查找,target较小则到中间元素的左半部分继续二分查找,相等则查找到了target缘故。

注意:
(1)必须是有序数组
(2)target元素可能找不到

两种实现方法:注意索引边界的不同。

def binarySearch(list, target):
	left = 0
	right = len(list) - 1  
	#在list[left...right]里查找target,注意是左闭右闭
	while left <= right:
		mid = (right + left) // 2    #取中间元素索引
		if list[mid] == target:
			return mid
		elif target > list[mid]
			left = mid + 1     #到list[mid + 1 ...right]里查找
		else:  #target < list[mid]
			right = mid - 1    #到list[left ...mid - 1]里查找
	return -1    #未找到target元素
def binarySearch(list, target):
	left = 0
	right = len(list)
	#在list[left...right)里查找target,注意是左闭右开
	while left < right:
		mid = (right - left) // 2 + left    #防止上面的写法整型溢出
		if list[mid] == target:
			return mid
		elif target > list[mid]
			left = mid + 1     #到list[mid + 1 ...right)里查找
		else:  #target < list[mid]
			right = mid        #到list[left ...mid)里查找
	return -1     #未找到target元素

二分查找法的时间复杂度:O(logn)

3、循环不变量:在循环中不改变的量,即在循环开始和在循环迭代过程中永远保持不变的条件。

比如二分查找的第一个写法里循环开始和在循环迭代过程中要一直保持在list[left…right]左闭右闭的范围里查找target,这个条件就是一个循环不变量。

其他数据结构基本算法的Python实现版本可从github:全python实现的数据结构与算法中获取

如何将树莓派CM4的Wi-Fi改为外置天线

树莓派 CM4 在设计时考虑到兼容性,系统默认用的是内置 PCB 天线。那怎么设置,切换到外置 WiFi 天线呢?

首先,你得把树莓派 CM4 天线(Antenna Kit)给焊上去,也就是下图那个黄色圆点。 

然后编辑 /boot/config.txt 文件。

在文件末尾加入一行配置:

dtparam=ant2

然后重启 树莓派CM4 ,让配置生效即可。

一个外置天线,大概三十多块钱人民币吧。

一条命令搞定全志XR806编译环境

XR806广泛应用于家电、安防等产品,比如以下案例。

  1. 智能家电,如空凋、冰箱、洗衣机,通过无线模组,通过家电<->服务器<->手机的连接关系,实现远程控制。
  2. IPC。即网络摄像头,网络编码模块将模拟摄像机采集到的模拟视频信号编码压缩成数字信号,从而可以直接接入网络交换及路由设备。
  3. 智能门锁。XR806特有的超低功耗技术,保证了稳定连接的前提下也保证了续航。

但是编译环境的设置比较麻烦,这里提供容器化安装方式,一条命令装好(使用前必须先安装Docker)

省的大家又是找源代码,又是配置环境了。

docker pull verdureorange/ubuntu_xr806:v1

Ubuntu 20.04 for Allwinner XR806.

Integrated demo codes and compilation tools, easy to quickly generate image package.

Teaching video: https://youtu.be/maNb565bnyI

Author: Medivh

If you have any questions, you can send me an email. Email:verdureorange@gmail.com

Linux /dev/mapper/ubuntu–vg-ubuntu–lv磁盘满了怎么解决

在安装Ubuntu Server后,经常会发现磁盘没用到一半突然满了。

这大概率是你在安装Ubuntu Server的时候采用了LVM模式。

可以先用指令 df -h 查看磁盘情况。

root@mysheep:/var/lib/docker# df -h
Filesystem                         Size  Used Avail Use% Mounted on
udev                               955M     0  955M   0% /dev
tmpfs                              198M  1.2M  196M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv  3.9G  3.5G  237M  94% /
tmpfs                              986M     0  986M   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                              986M     0  986M   0% /sys/fs/cgroup
/dev/loop0                          90M   90M     0 100% /snap/core/8039
/dev/loop1                          89M   89M     0 100% /snap/core/7270
/dev/sda2                          976M   77M  832M   9% /boot
tmpfs                              198M     0  198M   0% /run/user/1000

所以现在需要扩容,用指令显示存在的卷组,vgdisplay

root@mysheep:/var/lib/docker# vgdisplay
  --- Volume group ---
  VG Name               ubuntu-vg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <19.00 GiB
  PE Size               4.00 MiB
  Total PE              4863
  Alloc PE / Size       1024 / 4.00 GiB
  Free  PE / Size       3839 / <15.00 GiB
  VG UUID               lhPVeA-sFX5-5sQ6-2mAq-VR41-uvjU-YrPzFI

看到这一行,发现还能扩容:

Free PE / Size 3839 / <15.00 GiB

这就是可以扩充的大小。

lvextend -L 120G /dev/mapper/ubuntu--vg-ubuntu--lv     //增大至120G
lvextend -L +20G /dev/mapper/ubuntu--vg-ubuntu--lv     //增加20G
lvreduce -L 50G /dev/mapper/ubuntu--vg-ubuntu--lv      //减小至50G
lvreduce -L -8G /dev/mapper/ubuntu--vg-ubuntu--lv      //减小8G
lvresize -L  30G /dev/mapper/ubuntu--vg-ubuntu--lv     //调整为30G
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv            //执行调整

上面是示范,可以根据自身情况来进行扩容,最后执行最后的调整指令,然后就扩充成功了。

oot@mysheep:/var/lib/docker# df -h
Filesystem                         Size  Used Avail Use% Mounted on
udev                               955M     0  955M   0% /dev
tmpfs                              198M  1.2M  196M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv  9.8G  3.5G  5.9G  37% /
tmpfs                              986M     0  986M   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                              986M     0  986M   0% /sys/fs/cgroup
/dev/loop0                          90M   90M     0 100% /snap/core/8039
/dev/loop1                          89M   89M     0 100% /snap/core/7270
/dev/sda2                          976M   77M  832M   9% /boot
tmpfs                              198M     0  198M   0% /run/user/1000

文章来自:https://blog.csdn.net/Fish_Sheep/article/details/103325378

急招:软件安全验证工程师(安谋科技)

地点:

深圳 or 上海市(均可)

时间:

2022年3月-12月

职位描述:

作为安全团队的软件验证工程师,你不仅将是验证概念者,还将与开发工程师一起参与复杂系统的设计,并对软件质量提供有效和深入的见解。 通过不断提高验证执行效率和测试代码覆盖率,你将成为软件质量的强有力的保障。  

角色和责任:

一、安全软件的验证案例设计和实现,验证执行,bug报告和跟踪。

二、与研发人员深度合作,确保产品迭代质量。

三、持续优化和增强验证用例/代码。

四、严格执行测试流程,为流程改进提供建设性意见。  

五、设计和实现自动测试框架和测试用例。  

要求:

一、熟悉软件测试方法,流程和机制,安全栈优先。  

二、包括以下验证目标:固件,RTOS(例如,mbed或Zephyr), Linux内核/驱动程序,网络堆栈,中间件。  

三、熟悉微服务的概念,有实际验证经验者优先。  

四、有设计/实现自动测试框架开发的经验。  

五、理解移动和物联网设备中的基本安全概念(例如加密方案)。  

六、开放,自我激励和团队合作精神。  

七、3~5年软件验证经验。  

联系方式:

有意者可将简历发送至:Will.Wang@armchina.com

俄准备启用本国互联网“Runet” 未来几天或将与全球断开

俄《消息报》3月1日报道称,俄罗斯对乌克兰发起特别军事行动后,西方国家正对俄实施各种制裁。一些国家的黑客频繁对俄罗斯发动网络攻击,以阻止它们正常运行。未来几天,俄罗斯可能与全球互联网断开。

针对网络威胁,俄罗斯政府准备启动自己的“大局域网”Runet。俄联邦消费者权益保护和公益监督局称,目前正在与国家计算机事故协调中心进行协调,以应对黑客对关键信息基础设施的攻击,并做好启用Runet的准备。

Runet是俄罗斯出于国家网络防御目的而构建的一个脱离全球互联网的内部局域网。俄总统普京早在2019年5月就签署了《互联网主权法》,根据这一法律,俄罗斯互联网基础设施将逐步摆脱对境外网络的依赖,尤其是在遭受外部攻击时,俄罗斯可以独立运行国内互联网。

此前,俄罗斯相关部门多次进行过互联网断网测试并取得成功。俄罗斯认为,在社交媒体影响力和网络攻击日益增加的背景下,建立“主权互联网”是必不可少的举措。

俄罗斯五年前已布局“主权互联网”

早在2019年5月,俄罗斯总统普京就签署了了《主权互联网法》(Sovereign Internet Law),该法律通过让互联网流量经由政府控制的基础设施路由来传输,并创建一套国家域名系统,以加强对俄罗斯互联网的控制,赋予俄罗斯政府对互联网更多的控制权。

甚至在当年底,俄罗斯政府还宣布已经完成了国家断网测试,并且测试持续了数日,普通用户都没有注意到任何变化。俄通信部还与相关政府部门及企业举行了首次全俄互联网、物联网和通信网运行稳定保障演习,目的是保障俄网络在任何情况下都能无间断运行。

该测试旨在确保俄罗斯的国家互联网基础设施——“俄罗斯网络”(RuNet) 能够在不接入全球 DNS 系统和外部互联网的情况下都能无间断正常运行,甚至在遭遇外部力量断网时,俄境内的互联网仍可安全运行。

在断网测试过程中,依次切断了主要电信公司和ISP与全球互联网的连接,断网后的互联网流量在俄内部重新路由,像使用本地服务器,通过备份重建互联网的基础设施一样,也将使RuNet成为世界上最大的内部网。

为了做到这一点,该法案要求所有本地互联网服务提供商在俄罗斯通信部的管理下,通过战略要道重新路由所有的互联网流量,而这些“扼流点”既可以充当俄罗斯外部互联网连接的“开关”,也可以作为互联网监控设备保护数据隐私,类似于我国的“防火墙”技术。

当然,俄方没有透露有关测试的任何技术细节以及测试的具体内容。但当年的报道称,俄方测试了几种断开连接的场景,以确保内部网能够在没有外部互联网的情况下独立运行。这些测试包含了通信的稳定性、蜂窝通信的安全性、保护个人数据和拦截流量问题,以及使用物联网的安全性。

巧合的是,其中一项测试模拟了来自外国的恶意网络攻击的场景,与俄罗斯现在面对的情况几乎如出一辙。​

RK3399的Rock pi 4B怎么装Docker Community Edition

以ubuntu20.04为例子,

如果你过去安装过 docker,先删掉:

sudo apt-get remove docker docker-engine docker.io

首先安装依赖:

sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

根据你的发行版,下面的内容有所不同。如果你使用的发行版是Ubuntu。

信任 Docker 的 GPG 公钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

对于 amd64 架构的计算机,添加软件仓库:

sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
   $(lsb_release -cs) \
   stable"

如果你是树莓派或其它 64位ARM 架构计算机,请运行:

echo "deb [arch=arm64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
     $(lsb_release -cs) stable" | \
    sudo tee /etc/apt/sources.list.d/docker.list

最后安装。

sudo apt-get update
sudo apt-get install docker-ce

构建一个镜像:

docker build -t huaan/mypro:v1 .
# -f指定Dockerfile文件的路径,不一定要指定
# -t指定镜像名字和TAG
# .指当前目录,这里实际上需要一个上下文路径

进入一个已经运行的容器:

docker exec -it be97856fab35 bash

普通停止容器操作:

docker stop $(docker ps -aq)

docker 如何删除none镜像?

删除none的镜像,要先删除镜像中的容器。要删除镜像中的容器,必须先停止容器。

sudo docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }') //停止容器
sudo docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }') //删除容器
sudo docker rmi $(docker images | grep "none" | awk '{print $3}') //删除镜像

查看当前的文件卷:

docker volume ls

删除查询到的数据卷:

docker volume rm $(docker volume ls -q)

删除网络:

docker network rm $(docker network ls -q)

强制清除:

docker system prune --all --force

将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下:

docker cp /www/runoob 96f7f14e99ab:/www/

将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为aaa:

docker cp /www/runoob 96f7f14e99ab:/aaa

将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中:

docker cp 96f7f14e99ab:/www /tmp/

树莓派摄像头Picamera2库公测中

作者:大卫·普洛曼

如果你使用过任何 Raspberry Pi 相机,你可能对Picamera很熟悉,这是一个出色的 Python 库,旨在轻松操作 Raspberry Pi 的拍摄功能。

但你可能也知道,随着我们最近转向更开放和更标准的 Linux API,Picamera库(建立在专有的 Broadcom 相机堆栈之上)将来不会再支持了。

带有Raspberry Pi HQ 摄像头的Raspberry Pi 4

最初的Picamera库是第三方软件,由 Dave Jones 开发。事实证明该库在我们的用户中非常受欢迎,因此我们承诺提供替代品。命名为Picamera2的新库正在由 Raspberry Pi 在剑桥内部开发,最终将成为官方支持的软件包。

所以今天我们要宣布Picamera2的第一个预览版

在 Bullseye 桌面上运行的Picamera2示例

预览版是什么意思?

我们所说的预览版是指正在进行的工作。它已经有很多你可以尝试的功能,但仍然缺少一些重要的东西,在我们更广泛地发布该库之前,功能和API 的许多方面也会发生变化。

当前版本中支持的功能包括:

  • 你可以配置和启动摄像头,并接收多个图像流。
  • Picamera2支持预览窗口,无论是独立的还是嵌入在Qt应用程序中。
  • 可以查询和设置相机参数。
  • 你可以将全分辨率图像捕获为JPEGPNG
  • 或者,你可以将它们捕获为numpy数组,以提供给图像分析程序。

但有一个明显缺失的功能,就是我们仍在使用 Raspberry Pi 的硬件h.264编码器进行视频录制。如果你想使用Picamera2从 Python 录制视频,那现在还无法做到,可能还需要“几周”的时间。

如果你有兴趣查看新的Picamera2库(预览版),我们也很想听到相关反馈。比如不该忽略的功能,或者可以优化的地方。

我能用它做什么?

最好的解释可能只是显示一些代码片段!第一个示例启动一个预览窗口,然后进行全分辨率的JPEG捕获:

from qt_gl_preview import *
from picamera2 import *
import time

picam2 = Picamera2()
preview = QtGlPreview(picam2)

preview_config = picam2.preview_configuration()
capture_config = picam2.still_configuration()
picam2.configure(preview_config)

picam2.start()
time.sleep(2)

picam2.switch_mode_and_capture_file(capture_config, "capture.jpg")

在下一个示例中,我们捕获预览图像并将它们传递给OpenCV,以查看它是否可以使用Haar 级联检测图像中的任何人脸。

一位树莓派博主的脸部识别测试

它会在找到的任何人脸周围绘制检测框,并再次在预览窗口中显示图像:

#!/usr/bin/python3

import cv2

from null_preview import *
from picamera2 import *

# Grab images as numpy arrays and leave everything else to OpenCV.

face_detector = cv2.CascadeClassifier("/usr/local/lib/python3.9/dist-packages/cv2/data/haarcascade_frontalface_default.xml")
cv2.startWindowThread()

picam2 = Picamera2()
preview = NullPreview(picam2)
picam2.configure(picam2.preview_configuration(main={"size": (640, 480)}))
picam2.start()

while True:
    im = picam2.capture_array()

    grey = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
    faces = face_detector.detectMultiScale(grey, 1.1, 5)

    for (x, y, w, h) in faces:
        cv2.rectangle(im, (x, y), (x + w, y + h), (0, 255, 0))

    cv2.imshow("Camera", im)

除了这两个之外,我们还创建了 20 多个小示例脚本作为非正式教程,并帮助人们探索此预览版本中可用的功能。在适当的时候,一旦事情变化的速度稳定下来,我们将努力扩展这些信息并添加一些更正式的文档和教程。

我该如何尝试?

你可以在 Github 上找到Picamera2 的预览版,并且存储库README.md提供了完整的安装说明。

但是,预览版不适合胆小的人。由于Picamera2是建立在libcamera自己的 Python 绑定之上的,这些绑定目前处于原始阶段,因此目前的安装涉及libcamera库的一个特殊版本,需要手动编译它。

目前还无法通过包管理器或其他机制安装Picamera2的预览版。你必须从源代码构建它。如果你对此感到不自在,最好等待稳定版本。

但是,如果你有机会查看示例代码并尝试使用该库,我们将非常感谢任何有用的建议。我将密切关注相机论坛上的讨论,以便尝试回答你遇到的任何问题。