hubdog's blog
Flutter中ListView的性能优化窍门
Submitted by hubdog on Thu, 2019-02-28 08:34Flutter的listview显示几千条的列表时,性能会很差,性能改善的方法是
1.使用ListView.builder来动态创建要显示的项目
2.如果列表中每一项都是定长的话,可以设定itemExtent属性,这会极大的改善列表的滚动性能.
Opencv仿射和透射变换的坐标变换
Submitted by hubdog on Fri, 2019-02-22 09:15OpenCV里面通过getAffineTransform或者findTransformECC获取变形矩阵的饿时候会得到一个2x3或者3x3的变形矩阵,分别对应仿射矩阵和透视矩阵.
变形的时候如果想要算出原始图像坐标到目标图像的坐标的时候,可以使用下面方法计算
if (matrixSize == 3) { //计算透视变换坐标 double w= warp_matrix.at<float>(2, 0)*orgX + warp_matrix.at<float>(2, 1)*orgY + warp_matrix.at<float>(2, 2); targetX = (warp_matrix.at<float>(0, 0)*orgX + warp_matrix.at<float>(0, 1)*orgY + warp_matrix.at<float>(0, 2))/w; targetY = (warp_matrix.at<float>(1, 0)*orgX + warp_matrix.at<float>(1, 1)*orgY + warp_matrix.at<float>(1, 2))/w; } else { //计算仿射变换坐标
spring boot程序莫名其妙被killed
Submitted by hubdog on Thu, 2019-02-07 19:38感觉应该是内存不够的原因,参考下面文章加了swap的区域,到时试试看有没有改善
https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-o...
delphi程序在Android9下面显示Detect api compatibilty 错误的解决方法
Submitted by hubdog on Sun, 2019-01-27 00:41这个错误是由于delphi使用了反射api调用java的方法,这个在android9下面会触发一个警告对话框,虽然没有什么实际影响,但是会让程序显得很业余.参考https://stackoverflow.com/questions/51210633/android-p-displaying-api-compatibility-error-message
写了一个自动关闭警告对话框的功能,例子见附件,吐槽一下EMB,本来想开个ticket,上传到quality portal,结果无法登陆.看错误信息也是一头雾水.只好贴到自己的博客了.
emb quality portal挂了,要等几天看看什么时候能修好了,现在网站是不是也是外包做的,好业余啊.
追记:10.3.1里面进行了修正
从3Band的卫星图像生成真彩色RGB图像
Submitted by hubdog on Wed, 2019-01-16 14:55标准的卫星图像是3band或者8band的gtiff图像,用看图软件看的话,是全黑的图像,完全看不出东西来,需要做一下合并和缩放,参考下面的做法
https://gis.stackexchange.com/questions/244073/unable-to-convert-3-band-...
注意,上面方法渲染出来的图像跟QGis渲染的图像不一样,因为qgis默认用的是cumulative count cut方法进行的渲染.
https://gis.stackexchange.com/questions/278190/using-gdaldem-to-match-cu...
改成这种,出的图跟qgis就一样了.
调整磁盘的inode
Submitted by hubdog on Tue, 2019-01-15 22:35写了一个小说网站,生成的静态文件大小都是4-8k之间,然后突然报告磁盘满了的错误,用df -h --total查看了一下,发现磁盘空间还有很多.但是df -i --total 发现inode被用光了,参考
http://blog.51cto.com/pynliu/1624120
用mkfs.ext4重新格式化了一个磁盘,调整了inode 值问题解决.
截断亏损,让利润奔跑,固定止盈还是移动止盈?
Submitted by hubdog on Fri, 2018-12-21 09:55这个跟固定止盈还是移动止盈意思差不多.
从回溯结果来看,移动止盈拖长了交易时间,导致交易次数变少,总体收益反而减少.
盈亏=交易次数x胜率x盈亏比.
交易次数少,盈亏比增加的幅度很多时候收益不能cover损失的.
一天之中,满足交易策略的机会经常很少,一旦不能顺利止盈,会极大的影响交易次数.
交易次数减少一半,高的盈亏比也弥补不了.
突破压力阻力位胜率盈亏比?
Submitted by hubdog on Fri, 2018-12-21 09:42其实跟新高不空,新低不多意思接近.
新高新低就是最简单的阻力位和支撑位
某一个周期的新高其实就是突破阻力位
某一个周期的新低就是突破支撑位.
回溯结果是这个规则是有道理的.收益率提升了50%
空最弱,多最强?
Submitted by hubdog on Fri, 2018-12-21 08:21我们经常能看到某些操盘手说,操作期货时要多最强,空最弱.但是从回溯来看,并不是这样的.
回溯采用的BTC,ETH,XRP,ETC,LTC,DASH的5分钟数据线(20160815-20181204).每次都是多最强,空最弱的(1小时内),盈利3%止盈,亏1.5%止损.
运行结果是亏个精光
import h5py import numpy as np import pandas as pd import matplotlib.pyplot as plt #空最弱,多最强策略 history=None with h5py.File('coin_history_5min_6_20170815_20181204.h5', 'r') as f: history = f['history'][:] history= np.moveaxis(history, 0, -1) #btc,eth, xrp, etc, ltc,dash #coinxlenght*close high low open offset=5*12 EMPTY=0 LONG=1 SHORT=2 def reset_action():
坑爹的Android meta
Submitted by hubdog on Fri, 2018-11-30 09:47定义了一个Android meta ,设定为一串数字的id,结果以字符串方式获取的时候,返回的是科学计数方式的字符串.
https://stackoverflow.com/questions/2154945/how-to-force-a-meta-data-val...
参考答案1做了修改,但是返回的字符串多了一个空格,要trim一下.