自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 【Go弃用可重入锁】为什么可重入锁/递归锁的设计“不太好”

Java里面可重入锁能解决重量级锁引发的死锁问题,不挺好的吗?比如下面代码(mutex相当于Java重量级锁),对外提供了两个方法F和G,如果是Java的话,调用F,进入F时Lock一次,进入G时又Lock一次,此时会出现死锁情况,相当于线程占用了资源后又自己等自己,如果是可重入锁则不会死锁,进入F时Lock一次锁的可重入次数+1,进入G时又Lock一次又+1,对应Unlock时再-1,正常执行结束。而且可重入锁可在用户进程空间实现,避免了额外开销,又能解决死锁,性能也比重量级锁好,为什么还说其设计“不太好

2022-05-21 21:54:28 718

原创 【数值预报】按时间维度合并/重新生成nc、grib网格数据(按天、小时组织的文件合并成按月组织文件)

全球网格数据如grib、nc有些是按年组织的、有些是按月组织的、有些是按日组织的、有些是按小时组织的,然而这些在时间上都是一维形式,即普通的时间序列。对于数值模式预报数据,如ECMWF、GRAPES、JMA、NCEP 等等,其数据在时间上是二维形式,即(起报时刻,超前序列)。举个简单例子,假设气象台对气温预报,星期一会预报星期二到星期五的气温,星期二会预测星期三到星期六的气温,星期三会预测星期四到星期日的气温,这里就可以看到,星期一到星期天产生的序列长度不是7,而是3 x 7 = 21,所以说预报数据是

2021-12-30 20:38:32 3854 1

原创 Matplotlib/Cartopy/PyQt绘图调用某一函数如colorbar后窗体闪退

最近在做一个大概3、4万行python代码的项目,在把项目从mac迁移到win10和win7系统测试时发生了奇怪的bug,就是一旦绘图,窗体就直接闪退,连报错打印的信息都没留下,但在mac上可正常运行。由于项目涉及到众多包和框架,比如xarray、cfgrib、pyqt5、cartopy、pytorch等等,由没有报错信息,加上geos那套对不同操作系统、各个包不同的版本要求都比较严格,稍有不对号入座就会发生奇怪的bug,所以一时对于bug的排查比较难下手。最后经过连续5小时的排查,发现该闪退原因既不是

2021-11-18 23:34:21 1858

原创 【在家也能连组内GPU】Vscode等各类客户端使用公网云跳板Linux内网穿透实验室Win10主机实现SSH远程开发

前言【本文也适用Linux穿Linux】我配置是这样,有台阿里云,Linux系统,然后实验室有台3090的服务器,装的是win10系统,但接的是教育网宽带,相当于被NAT了,没有自己的公网IP,无法直接访问到。所以想在家也能使用组内GPU服务器,一个自然想法就是使用阿里云内网穿透组内win10,然后自己笔记本再ssh接入阿里云,让阿里云转发ssh流量,实现控制组内GPU。这里不得不吐槽win10,其实你去网上搜教程,大部分都是win/mac/linux客户端,然后使用公网linux穿内网linu

2021-07-31 19:05:43 589 4

原创 Linux、Windows、Mac非root普通用户使用秘钥免密SSH登录

前言一般买来的服务器都是给你root用户,但实际上安全隐患太大。比如我自己的服务器给实验室搭个跳板机内网穿透实验室的GPU服务器完成远程开发。但实现其需要秘钥免密登陆,如果新来的能直接免密登陆我服务器,手皮了一下把我服务器整崩了咋办,所以还是等开个非root普通用户给大家作跳板。不同操作系统间免密访问原理都是一样的,A主机免密访问B主机,需要A主机生成的公钥添加到B主机的~/.ssh/authorized_keys文件中,这样A访问B,B拿到A的用户连接信息,然后去自己的authorized_key

2021-07-30 11:11:45 1830 1

原创 【最新】高版本Mac、Python库下使用pip成功安装cartopy

前言高版本Mac、python库下Basemap装的真是折磨人,好不容易通过修改源码成功 import 了,结果运行案例代码中途报错。。最后转用cartopy这里强烈建议高版本Mac、python的用户不要使用basemap,basemap官方都说其已经过时了,要求用户转向cartopy本人环境mac10.15.x,python3.7+卸载cartopy相关可能是太过笨重,网速感人,所以本人一直不太喜欢Anaconda,也从来没装过,虽然cartopy官方说了使用Anaconda安装是最

2021-03-30 23:27:58 3585 3

原创 python使用协程解决内存瓶颈问题

前言本来程序跑得好好的,突然快到结尾时程序被强制关闭,报错 zsh: killed xxx/bin/python后面经查找发现是因为内存耗尽,程序强制被关闭,追其溯源,发现使用了类似这样的代码:从一个文件夹下读取全部文件数据作为list返回,由于list太大导致内存不足能不能通过分块或者惰性加载的思想来迭代nc_datas从而解决内存瓶颈问题?答案是可以的协程模型python中的协程采用了generator实现,而generator就类似惰性加载的思想,你调用它一次它才.

2021-03-29 20:26:24 1285

原创 【一般聚类/时序聚类】python实现多密度自适应聚类:Multi-DBSCAN

本文代码基于该篇进行魔改,功能调用更加方便,速度经测试快了几十倍import mathimport copyimport numpy as npfrom sklearn.cluster import DBSCANimport sklearn.metrics.pairwise as pairwiseclass Adapter_DBSCAN(): # 默认统计聚类个数在2-25之间的聚类情况, 参数符合python左闭右开 def __init__(self,num_clu

2021-03-25 23:22:07 4253 53

原创 【python注解】自定义注解与动态获取方法注解信息-进阶

在该文(基础篇)中简单介绍了python自定义注解与获取,但该文中的注解定义方式存在缺陷:同一方法上无法区分哪个信息是由哪个注解注入的(多注解情况)简单理解下就是:@annotationA(A_info="this is A",value="功能A")@annotationB(B_info="this is B",value="功能B")def test_fun(): print("test_fun...")if __name__ == "__main__": annos

2021-03-19 23:27:29 1503

原创 【python注解】自定义注解与动态获取方法注解信息-基础

python的注解是通过装饰器模式实现的,@注解本质是一个函数def my_annotation(**kwds): def decorate(fn): for item in kwds.items(): print(item) return fn return decorate@my_annotation(value="this is a annotation", author="Jack")def test_annotat

2021-02-17 15:33:43 3663 3

原创 Linux通过上下文切换(ctxt_switches )判断程序属于IO密集型还是计算密集型

前言判断一个程序属于IO密集型还是计算密集型有利于后续对程序进行并行优化,尤其是Cpython解释器下的python程序(GIL锁)。本文将先介绍判断方法,再结合一个实际案例进行分析。上下文切换上下文切换一般指用户态和内核态间的切换,通常切换的发生是因为用户程序在运行过程中产生了系统调用。在Linux中,上下文切换可分为自愿上下文切换(voluntary_ctxt_switches)和非自愿上下文切换(nonvoluntary_ctxt_switches),自愿上下文切换如字面意思,是一种主动的

2020-11-10 12:23:41 3070

原创 【时间序列降维】一种领先国内的降维算法---LTTB降维拟合算法

前言LTTB算法由冰岛大学的Sveinn在2013年提出,其对时序数据的降维拟合效果显著,且适用于海量数据处理,已被欧洲多家商业公司采纳,其降维效果如下图,灰色是高密度的原始时序数据,黑色是降维后的拟合表示本文将先介绍PAA降维算法,再讨论LTTB降维算法,最后使用工业生产数据对两者进行实验对比,整个过程已整理为论文报告的一部分。因实验部分数据保密关系,本博客将只截取部分论文报告内容,但已足以讲清LTTB算法。时序降维拟合技术算例验证LTTB降维算法就介绍道这儿,由于写报

2020-11-02 13:29:21 6693 177

原创 【Matplotlib】python绘图,同时沿x、y、z轴方向渐变颜色(按多轴渐变色)

通常绘制的图颜色只按一个方向渐变,如PCA降维后一个例子import matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dfrom sklearn.decomposition import PCAimport numpy as npdef show_pca_2d(): X = np.loadtxt("exp4/normal.txt",delimiter=",",dtype=np.float32) p

2020-10-15 11:03:36 4177

原创 【时间序列聚类】KMedoids聚类+DTW算法

前言KMedoids的聚类有时比KMeans的聚类效果要好。手上正好有一批时序数据,今天用KMedoids试下聚类效果安装KMedoids可以使用sklearn的拓展聚类模块scikit-learn-extra,模块需要保证 Python (>=3.6) scikit-learn(>=0.22) 安装 scikit-learn-extraPyPi: pip install scikit-learn-extraConda: conda install -c

2020-08-14 16:13:46 15430 102

原创 tslearn使用轮廓系数(silhouette_score)评估KShape聚类效果

前言tslearn和sklearn一样,是一款优秀的机器学习框架,tslearn更偏向于处理时间序列问题,如其聚类模块就包含了DTW(Dynamic Time Warping)等算法及变种,也提供了轮廓系数对聚类效果评估,十分方便。但可惜,tslearn似乎没有提供对KShape聚类的评估方法,而且tslearn用的人也不多,官方文档也是很 “简洁”,网上也搜不到多少相关文章,所以这里也就记录下自己的踩坑过程轮廓系数评估接口调用先看官方例子,这里X是一个三维的numpy数组,代表20段时间序

2020-08-11 22:38:05 17798 82

原创 python3字符集编码、中文编码原理与总结

前言python3在编码问题上会涉及到系统默认编码、本地默认编码和ssh工具终端通信编码三大不同层面,三者可以组合出不同的编码情况,不仔细梳理清楚确实容易弄混。本文在最后会给出一个真实的业务案例,若能搞清楚那么解决python3编码也不在话下了。系统默认编码系统默认编码在python3中可以这么理解,是指python3解释器以什么样的编码形式读取.py文件,形象点可以这么认为,你是python3解释器,你面前是磁盘上存储的二进制数据流(.py文件),假设是这样 010101000111010

2020-07-22 02:57:00 2151

原创 树莓派3b+开启无线wifi热点

前言最近想拿树莓派搭一个便携式NAS,存些电影在里面,因为每次坐火车手机信号奇差,想想有个内网wifi供你看电影该多爽(相比接一根数据线或u盘在手机上看,wifi显然能服务更多小伙伴),所以本篇文章将先讲述如何在树莓派3b+上开启wifi材料准备其实材料不需要多少,我这边是一根网线(连vnc的),一个无线网卡,如下换源由于官方镜像源存在种种问题,不仅速度慢,还有可能在apt-get install 的时候出现Unable to locate package xxx 的问题,所以最

2020-06-25 22:54:24 2201 5

原创 基于内容的推荐算法(Content-based)和多准则推荐算法(Multi-criteria)区别

最近因毕设需求纯手动撸了个性化景点推荐系统,写论文的时候却发现有两个概念比较模糊,如下:基于内容的推荐算法某些论文说的过于学术化,说简单点就是对 Item进行特征拆分,将这些特征做成tag标签或者向量,来匹配特定胃口的用户。而基于多准则的推荐算法呢?Wikipedia上说是系统预测用户对一个item的评分时会综合考虑多方面准则。那么问题来了,我Content-based也考虑了item的多...

2020-04-08 22:51:04 698

原创 检测到 #include 错误。请更新 includePath。已为此翻译单元 禁用波形曲线。C/C++ 无法打开 源 文件 "bits/stdc++.h"C/C++

换了新vscode,准备c++刷一刷 leetcode,结果万能头文件 include 报错:害,又是这个错误,其实官方文档里都说的明明白白了,一直觉得没必要写,但搜索引擎上乍一搜好像又没有很多相似文章,那这里还是记录下吧。事实上是这样的,如果你电脑装了visual studio,或者wsl(windows下Linux子系统),vscode会优先用前两者的编译器,如果前两个都没检测到,...

2020-02-23 10:35:39 69001 29

原创 为什么要使用ClassLoader? ClassLoader有什么好处?

刚接触ClassLoader,今天在巩固概念的自我问答博弈中突然顿悟使用ClassLoader的好处,现就此记录下对于像我这样刚接触概念的初学者,看到如下可能没啥感觉,都知道是如此ClassLoader顾名思义,可以在程序运行的时候动态加载class文件,并在内存中生成对应的Class但是自我博弈时改了下,变成如下ClassLoader顾名思义,可以在服务器运行的时候动态加载...

2020-02-11 11:12:39 2229

原创 重写equals方法和重写hashcode方法没有必然因果关系

看到很多博客把标题设置成 "为什么重写equals方法后一定要重写hashcode方法",虽然这是个面试题,事实上,若不看情况地将该命题一概而论,很容易造成不必要的误解。上述标题易把equals和hashCode之间形成因果关系,equals是因,hashCode是果。然而看过源码的都应该知道,Object的equals方法默认是返回 this == otherObj,而hashCode是一个na...

2020-02-08 13:58:59 605

原创 centos7一键彻底删除和重装mysql (妈妈再也不用担心我一条条复制粘贴命令啦)

考研去了,几个月没管项目,今天一打开数据库挂了,各种问号,按照网上一些步骤执行命令却把mysql彻底搞崩了,突然料到可能是因为我阿里云装的宝塔面板还有一堆其他东西导致相同的命令别人行我却不行,无奈,干脆写一个从头到尾自动删除和重装mysql的脚本,最好是能一执行完就能直接navicat连接的那种!先直接看效果:(彻底删除mysql的部分截图)(自动配置mysql的部分截图)(对...

2020-01-05 20:53:03 841

原创 使用NodeJs反向代理http请求并解决跨域问题

前言准备使用Halo搭建个人博客,但是在初始化时因为我乱摁键盘卡出了一个bug,原本是8090端口服务端,其他请求没问题,但css等静态资源神奇地变成了809端口.... 如图(请求的是8090,但css等静态资源很迷的变成了809,导致页面没样式)怎么办呢?全部重新删掉再安装?..... 突然意识到手头有NodeJs,行吧,干脆就用Node代理下请求,把809请求转到809...

2019-06-10 02:09:28 11956 1

原创 解决Anaconda3国内资源下载缓慢、下载不了

这是清华镜像源官方4月份的说明,可以看到Anaconda官方在搞事情如果你去他官网下载,你会发现网速...即使开了代理下载,仍然只有50多kb每秒左右...那么有什么办法能快速下载该资源呢?本文章授人鱼还要授人渔(百度网盘链接在文末),并会讲解下利用个人公网服务器和scp协议快速下载到被限速的资源基本思路方法一 自己搭建个人公网服务器,控制...

2019-06-06 20:01:02 21527 1

原创 Mysql数据库事务:从未提交读—>MVCC机制—>Next-Key Lock,各种隔离级别及其解决对应问题的原理

为了更好地理清类似脏读、不可重复读、幻读,未提交读、提交读、可重复读、串行化等概念,必需有这样一个认识:即这些概念都是属于数据库四大特性之一——隔离级别下的内容。而所谓的"隔离",当然是为了把问题给隔离和解决掉,而不同的隔离级别解决的便是不同级别的问题。可大致表示为4种隔离级别分别隔离4种问题​ 尽是问题 (丢失修改) ...

2019-05-29 13:30:13 2581 10

原创 Centos7安装搭建Mongodb并访问

[本文基于官方文档操作,Mongodb使用的4.x版本]一、安装Mongodb[ 两种方式安装:通过rpm安装和直接下载MongoDB .tar.gz包安装。如果通过下载tar.gz包安装还需要安装openssl依赖,以及进行环境变量等配置,相对繁琐,所以这里使用官方推荐的rpm安装 ]配置yum信息源,使得可以直接通过yum进行安装,所以这里我们创建一个/etc/yum.repos...

2019-05-20 18:40:41 1220

原创 【Vscode】Linux下两分钟快速搭建c++环境

前言[虽然原先搭建过相关环境,但考虑到以后换环境了还需要搭建,这里就此记录下]本文将通过两种方式进行c++环境的快速搭建,熟练的话确实可以控制在两分钟以内。两种方法分别是1. 基于插件的搭建和2. 传统的搭建基于插件的快速搭建前提:你linux下得有gcc/g++编译程序和gdb调试程序输入gcc -v ,g++ -v 检查gcc/g++环境,输入gdb -v 检查gdb...

2019-05-17 02:33:39 10535 5

原创 vscode使用cmder并设置启动路径为当前项目路径

按照官方的配置把vscode的默认终端换成cmder后发现每次启动都不在当前项目的根路径,比如下面:每次从vscode启动终端都会这样:那能不能直接启动终端就定位到当前项目根路径呢?后来还是摸索出了一个解决方案:编辑settings.json然后修改配置如下{ "terminal.integrated.shell.windows": "cmd.exe",...

2019-04-29 03:20:03 4911

转载 区块链历经"泡沫",正慢慢回归潜力

转载自 浅黑科技,原创:谢幺谢幺主要讲了区块链在未来维权,促进公平交易方面的巨大潜力,同时提到了迅雷全球最领先的链架构,文章通俗易懂文章地址:https://mp.weixin.qq.com/s/O-ujoJlidLXZIBLVu5FFJg...

2019-04-18 11:55:15 130

原创 deepin ubuntu安装Hadoop3.x(脚本自动配置)

自己配置成功hadoop3.x后顺便写了个shell脚本,开始只是好玩而已,没想到后面派上了大用场,很多同学配置半天各种错误,后面运行了我这脚本后都很快把hadoop跑起来了,快的5s,慢点的30s。码云地址:hadoop-install.sh。用法及注意事项里面都写了,自己用编辑器查看。deepin,ubuntu都可以。centos,fedora支持不是很好,只有一部分能跑起来(比如笔记本上...

2019-03-17 23:28:50 891

原创 海量数据处理-找到最符合的k个数以及对应的下标索引(TopK问题)

网上很多相关博客都只是写了在海量数据中找到最符合的k个值,没错,是值。但很多时候我们更想要的是这k个值对应的下标(索引),比如最近自己在写旅游的推荐算法,通过向量运算得到最终结果,但这些结果只能代表该景点与用户的相似程度,并不能代表景点本身,能代表景点本身的是其对应的下标,所以我要把景点本身推给用户必须拿到景点的下标。鉴于此,我给https://blog.csdn.net/u012129558/a...

2019-03-12 18:17:49 653

原创 java模拟ddos(附各类截图演示)

相信进来的大部分是出于兴趣或者一些个人需求吧,当然我自己也是,因为前些日子下载破解版的软件被病毒撸了,还好用的是sandbox打开的,没有实质性威胁到自己,所以当时也就有了那啥的想法。我本人其实都是没有接触过类似东西的,所以这里我会站在一个初学者的角度讲一下这次的经历与感受。(相关代码操作链接在本文末)说明其实这种攻击方式应该叫dos,而不是ddos,因为这里并没有做到分布式攻击。代码的话...

2019-02-15 21:21:18 2048 5

原创 java如何读取、写入Excel文件(将内容转成任意的bean对象)

将StudentInfo.xlsx里的内容读取出来并封装到StudentInfo类的对象中StudentInfo类的字段分别对应了excel中的列名,合成结果如下利用反射可以很好地实现对任意类的数据封装。实现如下public class Test { public <T> List<T> parseFromExcel(String path...

2018-11-24 19:02:33 9661 9

原创 绿盟杯 开源标注比赛

首届全国开源标注大赛算是结束了,这里记录下也吐槽下,希望能帮到以后的学弟学妹。 小组&比赛情况虽然报名的要求可以十个人一组,但是我们小组只有四个。语言方向的话有C++、Java、Python,我们选的是Java,需标注的项目有三个,Weka机器学习的Clusterer聚类模块、Andriod的原生音乐模块、华为ServiceComb里Swagger子项目的generator模块...

2018-11-21 16:24:26 1055

原创 如何修改request参数值并应用到springMvc中

就简洁地说一下吧。大多数crud都是在controller的一个个方法中进行的,一般的思路就是从request里取到当前user,或者userid,然后再通过这个user/userid去数据库里进行下一步操作。仔细想想的话,是不是做了一些重复的操作?能不能有一种方法可以从方法的的参数中直接取到当前user/userid?这样不仅可以直接根据其进行下一步操作,而且代码也减少了冗余。比如原先你可能要这...

2018-11-15 21:32:52 12690 10

原创 URL路径匹配算法实现

自定义的Filter里没有excludePath,所以自己写了一个。开始写的时候还把注意力放在路径分隔符 “ / ” 上,后来发现完全没必要。站在更抽象的层次上看无非都是字符串而已。测试数据:"https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_6172758863756121562...

2018-09-29 14:38:28 5086

原创 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2019 无法解析的外部符号 "public: void __thiscall XXX

VS2017有一段时间没写c++了,这次用vs2017写c++报这个错又有种熟悉的味道。原因:c++在写模版函数时(template<class T>之类的),头文件不能与cpp文件分离。这就意味者,你头文件定义的含模版的地方必须在头文件中实现,没用模版定义的地方可以放在cpp中实现比如这样:class Caculator{private: int* data ...

2018-09-18 01:25:05 153254 14

原创 IOC控制反转是如何做到解耦和的

     原来就了解过IOC控制反转的设计思想,也看过一些文章,总觉得自己好像都看得懂,也知道在讲什么,知道其能很好的解耦和,却隐隐约约又感觉自己好像还差了点什么。这次有点小运气,在写自己的迷你框架的时候,写到中途突然有种或豁然开朗的感觉,这里就次记录一下。      先说一下最开始的想法,假设有一天你需要输出各式各样的东西(种类繁多),比如各式各样的操作信息、教程、漂亮的html静态页面、以...

2018-08-06 15:05:39 4335 1

原创 中软杯之可信数字资产存证应用WEB端技术点总结

学期末算是顶着实验、考试、课程答辩各种东西硬着头皮一个月把中软杯项目肝完了,现在放假了简略总结下WEB端的东西吧,以下算是自己在项目过程中花心思想了一点时间的技术点吧(可能算不上技术点哈哈)1> js如何实现在多文件异步读取的情况下,按文件的读取顺序把文件的二进制流的md5值保存到对应的hidden中?技术点所在:1.1>多文件加载避免不了使用循环去遍历input.files,既然是异...

2018-07-10 14:12:10 846

原创 c#文件锁的实现

大致功能是,启动 文件锁 程序后,将想要上锁的文件或文件夹拖入到加密区,实现对 文件或文件夹 的加密,或者点击浏览文件夹 选择自己想要加密的文件或文件夹。1>效果:     2>对文件或文件夹上锁的原理:     其实是利用了windows自身的安全类标识符,对一个文件夹添加后缀  .{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}  后,会发现该文件夹被w...

2018-06-02 21:41:58 6778 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除